CoreData的保存方法不起作用

时间:2010-07-28 06:50:30

标签: iphone core-data nsmanagedobjectcontext

我正在使用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();
    }

我不确定我做错了什么。

2 个答案:

答案 0 :(得分:0)

我猜你有一个UI元素,比如一个表,在UI被更改时激活一个提取。例如,如果您有一个获取的结果控制器,则表的任何滚动都可以激活获取的结果控制器的提取。

在迭代该集合时,您不能改变集合,因为迭代计数在迭代过程中发生变化。 fetch迭代匹配其实体和谓词的对象集合。如果在fetch工作时插入对象,则会出现错误。

通常你会看到多线程的这个问题,但我认为UI可能会在正确的环境中触发问题。

答案 1 :(得分:0)

您可能已经更改了表格中的内容。如果是这样,请尝试使用表Z_METADATA (Z_VERSION, Z_UUID, Z_PLIST), Z_PRIMARYKEY (Z_ENT) ...

的原始值
相关问题