我一直在看這一段時間,但似乎無法破解它。它是我在CoreData中建立的第一個多對多關係,顯然有一些簡單的我缺少...保存循環刪除多對多CoreData關係的一端
我有一個屏幕,我維護兩個不同的核心數據'實體',實體通過多對多的關係。第一個實體以及第一個和第二個實體之間的關係保持在屏幕的第一個選項卡上,這似乎工作正常,允許我刪除第一個實體實例並添加/刪除第一個和第二個實體之間的關係。
我的問題是在我維護第二個實體的第二個選項卡上。他們的實體顯示正常,我可以更新他們的屬性,但是試圖刪除它們會導致一個永無止境的保存循環。
我相信我通過在第二個實體的NSManagedObject類的willSave方法中添加一個NSLog條目來驗證循環。
實體顯示在NSArrays支持的NSTableViews中(我沒有使用綁定)。 我分享一個managedObjectContext兩個選項卡和刪除操作簡便之間(見下文):
int currentRow = [[tableView selectedRowIndexes] firstIndex];
NSManagedObject *targetObject = [self.array objectAtIndex:currentRow];
NSError *error = nil;
[managedObjectContext deleteObject:targetObject];
if (![managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
希望有人能幫助... ...
問候
斯科特
這裏沒有太多東西可以繼續。嘗試在發生錯誤時發佈一些關於您的環境的更多信息,如果它是無限循環使用shark或'sample'命令來獲取跟蹤。作爲最後的手段,請完整發布您的代碼。 – ImHuntingWabbits 2011-03-19 19:59:38