2012-02-03 2 views
0

Я пытаюсь импортировать большое количество данных в соответствии с этим solution. Предполагается, что каждый импортирующий поток должен иметь свой собственный managedObjectContext, и они не могут пройти между ними managedObject. Итак, мой вопрос заключается в том, как мы можем установить связь, если в разных MOC были созданы два объекта?Импорт большого набора данных в основные данные

PS: После сохранения MOC в потоке он уведомляет основной MOC о слиянии контекстов. Поэтому связанный объект для нового объекта всегда находится в главном MOC. Другими словами, связанный объект уже создан.

ответ

2

Вы не можете пройти NSManagedObject s между потоками, но вы можете пройти NSManagedObjectID s.

Передайте эти объекты, а затем извлеките сами объекты из контекста, в который вы хотите установить взаимосвязь.

+0

Спасибо, человек, после проверки документации Apple о [параллелизм с основными данными] (https://developer.apple.com/library/ios/#documentation/cocoa/conceptual/coredata/Articles/cdConcurrency.html#// apple_ref/doc/uid/TP40003385-SW1) Я нашел 'Передайте свой идентификатор объекта (objectID) и используйте objectWithID: или existingObjectWithID: ошибка: в контексте принимаемого управляемого объекта.' Это очень помогло мне – CanP

+0

Знаете ли вы ответ к этому (у меня та же проблема): http://stackoverflow.com/questions/11500097/importing-saving-and-displaying-large-data-sets-using-background-thread. Это связано с вопросом CanP. Заранее спасибо. – acecapades

Смежные вопросы