Существует фундаментальная проблема с использованием нулевого MOC: объекты в разных MOC не должны ссылаться друг на друга & mdash; это предположительно также применимо, когда одна сторона отношений имеет ноль MOC. Что произойдет, если вы сохраните? (Что происходит, когда сохраняется другая часть вашего приложения?)
Если у вашего объекта нет отношений, вы можете сделать множество вещей (например, NSCoding).
Возможно, вы сможете использовать -[NSManagedObject isInserted]
в NSPredicate (вероятно, это ДА между вставкой и успешным сохранением). Кроме того, вы можете использовать временное свойство с тем же поведением (установите значение YES в awakeFromInsert и NO в willSave). И то и другое может быть проблематичным, если другая часть вашего приложения сохраняет.
Использование второго MOC - вот как «предполагается» использовать CoreData; он обрабатывает обнаружение и разрешение конфликтов автоматически. Конечно, вы не хотите создавать новый MOC каждый раз, когда происходят изменения; может быть неопределенно разумно иметь один MOC для несохраненных изменений медленным «пользовательским потоком», если вы не возражаете против того, чтобы некоторые части пользовательского интерфейса видели несохраненные изменения в других частях (издержки связи между MOC незначительны). *