Задать вопрос
deleted-mezhevikin
@deleted-mezhevikin

Как правильно работать c временными данными в CoreData?

Есть приложение с двумя UITableViewController — FirstViewController и SecondViewController.

В моделях одна сущность People.


В FirstViewController выводятся все данные из People (постоянное хранилище).

В SecondViewController данные загружаются с с севрера в виде json, из json формируется массив сущностей People и они так же выводятся.

По клику ячейки SecondViewController запись(только выбранная) должна сохраняться в постоянное хранилище.


Я пробовал делать разные NSManagedObjectContext для FirstViewController и SecondViewController, но оказалось что нельзя переводить объект NSManagedObject из одного контекста в другой.


Сейчас я в SecondViewController из json формирую массив NSDictionary объектов, по клику уже перевожу его в NSManagedObject и сохраняю.

Получается некая разнородность работы с данными.

Можно решить эту задачу другим способом?
  • Вопрос задан
  • 3066 просмотров
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    iOS-разработчик
    10 месяцев
    Далее
  • Нетология
    iOS-разработчик с нуля
    11 месяцев
    Далее
  • LearnQA
    Автоматизатор мобильных приложений
    9 недель
    Далее
Решения вопроса 1
deleted-mezhevikin
@deleted-mezhevikin Автор вопроса
Нашел рабочее решение моего вопроса.
Решение заключается в воссоздании NSManagedObject в новом контексте, т.е создается новый пустой объект в него копируются аттрибуты и связи.
Ранее я находил подобное решение в одной книге, но оно некорректно работало с NSManagedObject со множенстов связанных объектов.

На первый взгляд данное решение вполне быстро и адекватно работает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Flanker_4
@Flanker_4
А зачем Вы временные объекты заносите в хранилище.
Почему бы не держать их просто в памяти, а после выбора пользователем вносить только выбранный?
Ответ написан
hybridcattt
@hybridcattt
Если такой вариант подойдет, правильнее всего будет не создавать сущности при отображении таблицы в SecondViewController, а сделать источником для таблицы распарсенные данные из json. При выборе пользователем какой-то строки, создавать один NSManagedObject в нужном контексте и сохранять его.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы