我有以下问题:
问题在于,例如,一些数据在根上下文中进行解析,并且必须在主线程应用程序崩溃时使用信息Collection< __ NSCFSet:0x169a2190>进行刷新。在被列举时被突变。 我做了研究,我知道通常它意味着来自根上下文的对象在线程x上被突变,同时在线程y上进行枚举。我确信99%这不是我的情况,因为我知道必须遵循多线程环境和使用核心数据的规则。我想知道它是否以这种方式起作用:
我不知道这是不是正确的方法? 你能和我分享你对这个问题的看法吗?
答案 0 :(得分:1)
看来你的设置并不理想。不是拥有主上下文的父上下文来完成工作并更改对象,它应该是子上下文。
如果您遵循以下模式,则无法遇到此问题:
Root context (background) saves to persistent store --> parent of
Main context (main thread) updates UI --> parent of
Worker context (background) handles web, parses, inserts, mutates etc.
当您保存工作人员上下文时,更改会上推到主上下文。例如,如果您使用NSFetchedResultsController
,则可以通过实施委托方法来对更改做出反应。