我创建了一个访问数据存储区并返回表示Core Data实体的对象的单例类。这在普通线程中很好,但我担心从后台线程上运行的另一个类访问这个单例方法,因为后台线程将使用自己的托管对象上下文副本运行。
当尝试从后台线程调用单例时,我是否需要创建单例的新实例并传入后台线程的托管对象上下文副本,或者我可以安全地访问单例方法并允许它使用它是从应用程序委托内部检索的共享托管对象上下文吗?
答案 0 :(得分:2)
让您的数据管理员课程使用performBlock:
或performBlock:andWait:
这样,调用将始终以线程安全的方式进行。
然而,就个人而言,我通常编写我的数据管理器,以便在主线程上调用它,并且它负责在任何有意义的线程上进行任何进一步的调用。