Мне нужен совет, как это сделать:
1) Я получаю XML с веб-сервера.
2) Я хочу сохранить все сущности (т.е. друзей) из этого XML локально на устройстве, используя Core Data.
3) Итак, я анализирую XML и создаю управляемый объект для каждого друга в этом XML
4) Но я хочу убедиться, что я не добавляю одного Друга несколько раз в базу данных. Как мне этого добиться?
-------------- мои стратегические мысли по этому поводу ----------------
A) При анализе XML я создаю управляемый объект сущности Friend, как только запускается элемент Friend. В этот момент я не знаю, каким другом это будет, пока NSXMLParser не пройдёт по всем предстоящим атрибутам, таким как firstName, id и т. Д .; После конечного тега для элемента Friend у меня есть этот друг в контексте моего управляемого объекта. Затем я делаю NSFetchRequest, чтобы посмотреть, сохранен ли уже этот друг. Проблема в том, что новый друг уже является частью контекста, поэтому, вероятно, Core Data всегда будет возвращать совпадение!?
B) Мне нужны два разных контекста управляемых объектов, чтобы проанализированные Друзья сначала отправлялись в MOC_A, а затем я запрашиваю MOC_B (фактическое локальное хранилище) без того, чтобы новые проанализированные друзья мешали моему запросу в локальное хранилище. Так что я могу узнать, существовал ли уже друг.
C) При анализе друга из XML я просто создаю новый экземпляр управляемого объекта БЕЗ добавления его в контекст управляемого объекта (возможно?!). Позже, когда друг полностью срезается, я проверяю данные Core Core на предмет их сохранения. Если нет, я добавлю это. В противном случае я выбрасываю объект.
D) Мне нужна другая стратегия.