У меня есть следующие объекты и отношения:Как правильно удалить NSManagedObject отношения
Entity0, EntityA, EntityB, EntityC
Entity0 может иметь 0 или много EntityA (s). EntityA имеет взаимно однозначное отношение «entityB» с EntityB (обратным является «itemB»). EntityC имеет отношение «многие ко многим» «entityBs» с EntityB (обратным является «itemCs»). Правило удаления для всех отношений - «Nullify».
Я создал один EntityA и связал его с EntityB. Затем я создал один EntityC и связал его с EntityB.
Во время удаления из EntityA, я делаю это ...
self.entityA.entityB = nil;
[self.entity0 removeEntityAObject:self.entityA];
Теперь я ожидал «entityBs», привязанный к EntityC будет удален, а также. Однако, когда я пытался получить подробную информацию о «entityBs» от EntityC
NSLog(@"details %@", self.entityC.entityBs);
Я получил эту ошибку на первом вызове:
entityBs = "<relationship fault: 0x1557abb0 'entityBs'>";
Затем я нажимаю кнопку назад и выберите снова EntityC для получения детали еще раз. Тогда я получил это:
entityBs = (
"0x1669b8b0 <x-coredata://12REF41B-4A7D-4A51-B6BC-2RHRI5DC3124/EntityB/p22>"
);
status = 0;
}) with objects {(
<EntityB: 0x166ac100> (entity: EntityB; id: 0x1669b8b0 <x-coredata://12REF41B-4A7D-4A51-B6BC-2RHRI5DC3124/EntityB/p22> ; data: <fault>)
Это как если бы сущностьB все еще существует. Как правильно выполнить удаление?
Для # 3, вы имеете в виду делать [self.entity0 removeEntityAObject: self.entityA]; и вызывать [self.managedObjectContext save: & error] недостаточно, чтобы удалить сущностьA из контекста? ... тогда как я должен удалить entityA из контекста? – iPhoneJavaDev
или до того, как я позвоню на сохранение, мне нужно специально удалить entityA из контекста ... [self.managedObjectContext deleteObject: self.entityA] ;? – iPhoneJavaDev
Вам нужно вызвать 'deleteObject:' – Wain