我正在使用coredata为我的iPhone创建一个应用程序。
我有一个带有对象的viewcontroller我想将该对象保存到我的FavoriteViewController。 通过单击按钮收藏夹我希望我的对象保存到managedObjectContext但我收到以下错误:
由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'尝试使用正在进行的提取执行另一个操作'。 *
我的代码:
// Step 1: Create Object
Favorite * newFavorite = (Favorite*)[NSEntityDescription insertNewObjectForEntityForName:@"Favorite" inManagedObjectContext:managedObjectContext];
// Step 2: Set Properties
newFavorite.name = @"Company";
NSLog(@"%@",newFavorite);
// Step 3: Save Object
NSError *error = nil;
if (![newFavorite.managedObjectContext save:&error]) { // this is where the program crash
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
我不确定我做错了什么。
答案 0 :(得分:0)
我猜你有一个UI元素,比如一个表,在UI被更改时激活一个提取。例如,如果您有一个获取的结果控制器,则表的任何滚动都可以激活获取的结果控制器的提取。
在迭代该集合时,您不能改变集合,因为迭代计数在迭代过程中发生变化。 fetch迭代匹配其实体和谓词的对象集合。如果在fetch工作时插入对象,则会出现错误。
通常你会看到多线程的这个问题,但我认为UI可能会在正确的环境中触发问题。
答案 1 :(得分:0)
您可能已经更改了表格中的内容。如果是这样,请尝试使用表Z_METADATA (Z_VERSION, Z_UUID, Z_PLIST), Z_PRIMARYKEY (Z_ENT)
...