2011-12-01 17 views
0

我有一個簡單的iphone應用程序與一對多的禮物到收件人的關係(也就是說,一個收件人可以得到很多禮物,但每個禮物都必須去一個收件人。爲了創建禮物和收件人之間的關係,我首先在託管對象上下文中創建新的收件人對象,將新控制器的收件人對象設置爲新的收件人,然後將新控制器彈出到navigationController上。當新控制器返回時,我將新收件人分配給禮物調試NSObjectInaccessibleException錯誤。對象的managedobjectcontext變爲零?

爲交易代碼:

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爲零,並且調用recipient.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

回答

0

好的,所以我想我已經想通了。推一個新的viewController 不是似乎結束當前方法的執行,就像調用另一個函數可能。所以當我按下視圖控制器後刪除對象時,它將刪除另一個視圖控制器中的對象。我真的不明白這背後的邏輯,但它是...

相關問題