我知道NSManagedObjectContext
并不是线程安全的,但是我想在后台执行获取和更新操作。所以我对是否可以这样做有疑问。
我有一个单例访问核心数据,所以我想创建一个串行dispatch_queue_t,它可以串行执行所有请求。这样可以吗,原因是我不确定是否所有请求都将在同一线程中执行,但是由于它是串行的,因此不会有任何并发操作。
最佳答案
无需创建串行dispatch_queue_t
,只需信任NSManagedObjectContext
即可处理它,只需使用performBlock:
和performBlockAndWait:
[context performBlock:^{
// do fetches or updates here and do not worry about threads,
// just make sure your context has a proper concurrencyType
}];