【发布时间】:2011-03-19 05:49:38
【问题描述】:
我一直在看这个有一段时间,但似乎无法破解它。它是我在 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();
}
希望有人能帮忙...
问候
斯科特
【问题讨论】:
-
这里没什么可做的。尝试在错误发生时发布有关您的环境的更多信息,如果它是无限循环使用鲨鱼或“样本”命令来获取跟踪。作为最后的手段,请完整发布您的代码。
标签: core-data