0
我有一個非常簡單的應用程序的基礎,到目前爲止,用戶在其中輸入一個人的名字和姓氏,然後有兩隻文本框,當他們點擊保存按鈕下面的代碼運行:CoreData NSManagedObject不節能
person = (Person *)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:managedObjectContext];
NSError *err;
if (![managedObjectContext save:&err])
{
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", err, [err userInfo]);
exit(-1); // Fail
}
所以我有一個Person
對象,我設置的第一個和最後一個名字,因爲用戶鍵入到文本字段中,然後在選擇保存時插入對象。但是,在保存之後,名字和姓氏顯示爲(null)
。我已經正確連接了所有的插座和方法,所有代碼正在運行以設置並保存名稱/對象。
但是,如果我這樣做的主視圖:
Person *p = (Person *)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:managedObjectContext];
PersonDetailViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"PersonDetail"];
vc.managedObjectContext = fetchedResultsController.managedObjectContext;
vc.person = p;
然後保存我的對象,該值不(null)
。我試圖在決定保存後插入新對象,而不是創建它,然後刪除它,如果取消更清晰和更邏輯的代碼。希望你能幫助。
任何想法?
謝謝。
它是在兩種情況下相同的managedObjectContext?或者第一個案例使用單獨的還是兒童的MOC? –
第一種情況使用相同的MOC。就像在第二種情況下一樣,它從主視圖控制器傳遞下來。唯一不同的是我在MOC傳遞之前或之後插入對象。 –
這只是一個想法,因爲它讓我想起了這個問題:http://stackoverflow.com/questions/12875749/pass-array-of-nsmanagedobjects-to-a-new-view其中屬性成爲無後MOC有被釋放。 –