2013-07-05 177 views
0

在覈心數據中刪除實體對象時也刪除所有關係對象 還有另一個具有一對多關係的實體細節。我需要刪除它的對象還是下面的代碼需要照顧它? 我的代碼到目前爲止:核心數據刪除實體對象時也刪除所有關係對象

NSFetchRequest * allClients = [[NSFetchRequest alloc] init]; 
[allClients setEntity:[NSEntityDescription entityForName:@"Client" inManagedObjectContext:[NSManagedObjectContext defaultContext]]]; 
[allClients setIncludesPropertyValues:NO]; //only fetch the managedObjectID 

NSError * error = nil; 
NSArray * clients = [[NSManagedObjectContext defaultContext] executeFetchRequest:allClients error:&error]; 
//error handling goes here 
for (NSManagedObject * client in clients) { 
    [[NSManagedObjectContext defaultContext] deleteObject:client]; 
} 

NSError *saveError = nil; 
[[NSManagedObjectContext defaultContext] save:&saveError]; 
//more error handling here 

回答

0

這取決於你已經配置了什麼設置。對於每一個關係,你可以將其設置爲:

  1. 什麼都不做
  2. 級聯(刪除過的其他項目)
  3. 抵消
  4. 拒絕(不允許刪除)

您可以爲模型中的每個關係(以及每個關係的兩端)指定此值。

+0

嗯,你認爲什麼是推薦的選項...我想級聯 – Jatin

+0

通常是級聯和無效的組合。什麼是正確的100%取決於您的數據模型... – Wain

相關問題