【发布时间】:2015-11-13 03:26:09
【问题描述】:
我有以下问题:
- 在我的应用中有一个核心数据模式,即根 NSManagedObjectContect 与 NSPrivateQueueConcurrencyType 并发类型,此上下文负责解析从远程服务器获取的对象。
- 还有 NSManagedObjectContect 设置为具有 NSMainQueueConcurrencyType 并发类型的 root 的子节点。
问题是随机的,例如一些数据正在根上下文中解析,并且必须在主线程应用程序崩溃时刷新,信息 Collection <__nscfset:> 在枚举时发生了变异。 我做了研究,我知道通常这意味着来自根上下文的对象在线程 x 上发生突变,而在线程 y 上被枚举。我确信 99% 的人不是我的情况,因为我知道多线程环境和使用核心数据必须遵循的规则。我想知道它是否以这种方式工作:
- 根上下文进行一些解析。
- 在解析过程中,应用想要刷新 UI,并在主上下文中完成。
- 在刷新主上下文的操作期间,从父上下文中获取对象。
- 在执行获取的操作时,由于解析操作,根上下文会改变获取的对象。
不知道这样对不对? 您能否与我分享您对这个问题的看法?
【问题讨论】: