我一直在看这一段时间,但似乎无法破解它。它是我在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