Iphone 收藏<;NSCFSet:0x1b0b30>;在枚举时发生了变异。如何确定哪一组?
我正在进行一系列核心数据插入,在大约20k次插入后,每1-2k次保存一次,我会得到以下错误:Iphone 收藏<;NSCFSet:0x1b0b30>;在枚举时发生了变异。如何确定哪一组?,iphone,objective-c,core-data,ipad,Iphone,Objective C,Core Data,Ipad,我正在进行一系列核心数据插入,在大约20k次插入后,每1-2k次保存一次,我会得到以下错误: Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <NSCFSet: 0x1b0b30> was mutated while being enumerated.' 由于未捕获的异常“NSGenericeException”而终止应用程序,原因:“***集合在枚举时发
Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <NSCFSet: 0x1b0b30> was mutated while being enumerated.'
由于未捕获的异常“NSGenericeException”而终止应用程序,原因:“***集合在枚举时发生了变异。”
我正试图找出是哪个NSSet导致了这种情况。我已经进行了搜索,代码中唯一的NSSET是处理核心数据关系的自动生成NSSET
我正在使用NSXMLParser,并为找到的每个元素创建一个新实体(如果匹配的实体还不存在的话)
因此,我将创建一个州实体,然后填充所有城市实体,然后进行保存。这意味着一个州的NSSet*城市正在被添加到中,但我不明白你为什么不能这样做。在
objc\u exception\u throw
上设置一个断点,并获取回溯。这应该表明突变期间枚举的内容。您是在后台线程上执行此操作的吗?在主线程上的实体上可能正在执行任何操作吗?如果没有一点代码,就很难诊断这个问题,但根据我有限的经验,在更改正在迭代的集合时,即使操作在单独的线程中,也会经常发生此异常。是的,这是在后台线程上。我的主线程只是显示一个带有微调器/消息的UIAlertView。我将检查以确保在插入过程中,我的底层UITableView没有尝试刷新。