2012-05-24 69 views
0

如何更新核心數據實體,需要採取哪些操作?我有一個Store,與Product有一對多的關係。當我對產品進行更改時,請刪除一個或添加,然後是否需要執行任何操作,例如調用某些方法?或者我只是編輯產品並讓它們保持獨立,然後在用戶退出應用程序時將它們保存到持久性存儲中?這是正常的方式嗎?更新核心數據實體

回答

1

你必須拯救它們是持續性 - 見Managed Object Context in the Core Data Programming Guide from Apple

除非你確實保存這些更改,但是,持久性存儲器保持不變。

所以這裏是代碼

NSError *error = nil; 
BOOL savedSuccessfully = [self.managedObjectContext save:&error]; 
if (!savedSuccessfully) { 
    NSLog(@"Could not save date change! Reason : %@", [error localizedDescription]); 
} 

您應經常保存並不僅退出應用程序時。看到這個答案:How often should I save to Core Data?

當我做了更改產品,刪除一個或補充,我需要做任何事情再比如調用一些方法?

這取決於您在覈心數據模型中的實體中設置的刪除規則。

  • 無效:與已刪除對象的關係中的任何其他對象將這些關係設置爲零。對於多對多關係,已刪除的對象將從集合中刪除。
  • 級聯:與對象有關係的任何其他對象也被刪除。
  • 拒絕:如果有其他相關對象,則刪除將被拒絕。
  • 無動作:任何與對象有關係的其他對象都將保持不變。
+0

只能部分回答我所有的問題 – LuckyLuke

+0

因此,每次進行更改時,您都需要在上下文對象中調用'save'?您不要依賴用戶關閉應用程序時發生的保存上下文。 – LuckyLuke

+0

但該代碼已添加到應用程序委託中。在應用程序中傳播保存上下文是否正常? – LuckyLuke