我有一个条目列表,是保存在Core数据模型中的Item类的实例。
使用NSArrayController和CocoaBindings在NSTableView中显示这些项。效果很好。
但是,当我使用以下说明删除某些项时:
// Removes selected items
for (Item *item in self.itemsArrayController.selectedObjects) {
[self.managedObjectContext deleteObject:item];
}
NSError *error = nil;
if (![self.managedObjectContext save:&error]) {
[[NSApplication sharedApplication] presentError:error];
}过了几次,我得到了异常CoreData无法完成故障。
我阅读了我找到的所有文档(包括核心数据的故障排除),但我没有发现任何有用的东西。
我正在使用新的ARC (自动引用计数),所以我非常肯定,在托管对象上下文的保存之后,我没有试图访问被删除的托管对象。
更新:我的应用程序是单线程,所以我不尝试从多个线程访问managedObjectContext。
发布于 2011-10-13 08:28:43
您正在枚举数组控制器的选定项,并在枚举时删除对象。尝试:
NSArray *selectedObjects = [[self.itemsArrayController selectedObjects] copy];
for (Item *item in selectedObjects) {
[self.managedObjectContext deleteObject:item];
}
[selectedObjects release];https://stackoverflow.com/questions/7275746
复制相似问题