В настоящее время я выполняю несколько сетевых запросов через несколько потоков, выполняющихся параллельно, поэтому у меня есть контекст управляемого объекта для каждого потока, и каждый поток устанавливает значения атрибутов для сущностей Core Data. Итак, вот дилемма: каждый сетевой запрос получает небольшие объемы данных за раз, и существуют сотни (или даже тысячи) этих запросов, и я хочу выполнить сохранение после того, как все сетевые операции были выполнены (так что я могу с уверенностью предположить, что эти сохраненные данные означают, что все было успешно загружено и записано в хранилище). Итак, два вопроса:
- Сохраняю ли я каждый контекст управляемого объекта после того, как каждый поток завершает запись в контекст, или я сохраняю все контексты управляемых объектов в памяти, а в конце перебираю все из них и выполняю сохранения? (После того, как это было написано, стало очевидно, что экономия на ходу будет более эффективным методом, но я все равно хотел бы услышать ваши мысли.)
- Есть ли способ объединить контексты управляемых объектов без выполнения операции сохранения? В настоящее время я объединяю контексты через уведомление NSManagedObjectContextDidSaveNotification, и мне было интересно, есть ли другой способ.