Сценарий:Передачи идентификаторов ManagedObject через контексты
Я имею дело с 2 viewControllers каждый со своим собственным контекстом (тем же нить). Я пытаюсь передать идентификатор объекта managedObject из MOC2 -> MOC1 через метод делегата. Хорошо, сделал это, кажется, чтобы передать ObjectID.
Вот проблема ... от MOC1 (делегата) Я получаю указатель на новый объект через [self.localMOC objectWithID:thePassedID]
. Я запускаю NSLog на найденном объекте, журнал описывает его, он, кажется, найден. Теперь, когда я пытаюсь найти его в обновленном получаемом контроллере результатов, он не может быть найден, даже если он показывает объект в представлении таблицы, который использует тот же контроллер результатов.
Вот утверждения журнала ...
объект через objectWithID: <Account: 0x6b11f90> (entity: Account; id: 0x6db44b0 <x-coredata:///Account/t5F84827D-E710-4331-A462-FCA1A0D335102> ; data: <fault>)
Объект управления Результаты: <Account: 0x6b1fc50> (entity: Account; id: 0x6b50250 <x-coredata://84B6642A-9C80-451F-BED4-52952EDFC43C/Account/p9> ; data: <fault>)
Кажется, один является permanentID, а другой является temporaryID, а также как совершенно разные адреса памяти.
Любые подсказки относительно того, что я делаю неправильно?
Ниже поток:
Ну, я знаю, что MOC 1 обновляется, потому что новый управляемый объект (или его форма) не будет отображаться в диспетчере представлений таблиц и получаемых результатов. Кроме того, мне нужно использовать метод делегата для передачи ObjectID. – Gobot
Может быть, есть обновление, и _updating_? Если у вас есть два отдельных контекста и вносить изменения, вы должны как-то синхронизировать данные, как вы это делаете сейчас? – jrturton
через метод сброса NSManagedObject. Я думал, что ObjectID специфичен для каждого управляемого объекта, и в основном использовался для получения ссылки на этот объект. Как еще можно восстановить этот объект, если нет значения «ID»? Что меня смущает, так это то, что объект утверждает, что его можно найти в контексте. – Gobot