CoreData和NSManagedObject Context - 私有与主要

时间:2016-07-02 23:27:57

标签: objective-c swift core-data nsmanagedobjectcontext

使用performBlock触发CoreData(CRUD)操作与私有上下文并使用dispatch_async后台队列中的主上下文触发此类操作之间是否存在差异?

是不是一个人不应该在后台线程中使用主要上下文?

指向apple docs的链接是here

1 个答案:

答案 0 :(得分:3)

您应该永远在后台线程中使用主队列上下文。这违反了线程限制规则。

主队列上下文应该只能从主队列(UI队列/线程)或performBlock访问。如果您需要执行非UI相关任务,则应创建专用队列上下文并通过performBlock访问它。

要确认您的Core Data线程是否正确,可以打开-com.apple.CoreData.ConcurrencyDebug 1运行时设置。