У меня есть простое приложение для iphone с отношением один ко многим подарка к получателю (то есть один получатель может получить много подарков, но каждый подарок должен идти одному получателю. Чтобы создать связь между подарком и получателем, Сначала я создаю новый объект-получатель в контексте управляемого объекта, назначаю новым получателем объект-получатель нового контроллера, а затем добавляю новый контроллер в навигационный контроллер. Когда новый контроллер возвращается, я назначаю нового получателя подарок.
Код для этой транзакции:
RecipientEditController *nextController = [
[RecipientEditController alloc]
initWithStyle:UITableViewStyleGrouped
];
Recipient *new = [NSEntityDescription
insertNewObjectForEntityForName:@"Recipient"
inManagedObjectContext:gift.managedObjectContext
];
[new addGiftsObject:gift];
nextController.recipient = new;
nextController.recipient.hideRelationships = YES;
[self.navigationController pushViewController:nextController animated:YES];
if ([new hasData]) {
gift.recipient = new;
} else {
[gift.managedObjectContext deleteObject:new];
}
break;
В новом контроллере объект-получатель работает нормально; Я могу напечатать описание получателя в методе ViewWillAppear. Но когда я попадаю в метод tableView: cellForRowAtIndexPath, мой объект-получатель больше не является допустимым: его managedObjectContextProperty имеет значение nil, и вызывается метод receiveient.firstName (свойство, определенное в классе модели и в базе данных), возникает ошибка.
Ошибка:
2011-11-30 17:22:18.111 Gift Hero[36359:b603] *** Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'CoreData could not fulfill a fault for '0x59e65c0 <x-coredata://97FDB78C-6F65-4B54-8DBB-00A9C6A4B4C8/Recipient/p21>''
Есть идеи, что происходит? Это буквально сводит меня с ума! Как получатель может просто сделать недействительным между отображением представления и отображением таблицы?!
Заранее спасибо, PT