相关疑难解决方法(0)

"在枚举时收集变异"在executeFetchRequest上

我已经坚持了几个小时的问题,并且已经在stackoverflow上阅读了所有相关信息(并应用了所有建议),我现在正式需要帮助.; O)

以下是上下文:

在我的iPhone项目中,我需要在后台导入数据并将其插入到托管对象上下文中.按照这里的建议,这是我正在做的事情:

  • 保存主要的moc
  • 使用主moc使用的持久性存储协调器实例化后台moc
  • 将我的控制器注册为后台moc的NSManagedObjectContextDidSaveNotification通知的观察者
  • 在后台线程上调用import方法
  • 每次收到数据时,将其插入后台moc
  • 导入所有数据后,保存背景moc
  • 将更改合并到主线程上的主moc中
  • 取消注册我的控制器作为通知的观察者
  • 重置并释放后台moc

有时(和随机),例外......

*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSCFSet: 0x5e0b930> was mutated while being enumerated...
Run Code Online (Sandbox Code Playgroud)

当我在后台moc上调用executeFetchRequest时,抛出...以检查导入的数据是否已存在于数据库中.我想知道什么是变异集,因为没有任何东西在import方法之外运行.

我已经包含了我的控制器和我的测试实体的整个代码(我的项目由这两个类和app委托组成,未经修改):

//
//  RootViewController.h
//  FK1
//
//  Created by Eric on 09/08/10.
//  Copyright (c) 2010 __MyCompanyName__. All rights reserved.
//


#import <CoreData/CoreData.h>

@interface RootViewController : UITableViewController <NSFetchedResultsControllerDelegate> {
    NSManagedObjectContext *managedObjectContext;
    NSManagedObjectContext *backgroundMOC;
}


@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain) NSManagedObjectContext *backgroundMOC;

@end


// …
Run Code Online (Sandbox Code Playgroud)

cocoa multithreading core-data

121
推荐指数
1
解决办法
5万
查看次数

标签 统计

cocoa ×1

core-data ×1

multithreading ×1