在后台线程上读取CoreData托管对象

时间:2015-05-12 04:23:37

标签: ios multithreading core-data

我知道CoreData不是线程安全的,我需要每个线程一个MOC,我使用两个线程(一个用于处理传入的更新,一个用于提供UI)但是......可以只用读取一个完全不同的线程上的对象,如:

NSManagedObject *mo = fetch some object
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
      loop over the objects in a relation, fetch some data and cache it....
});

DISPATCH_QUEUE_PRIORITY_BACKGROUND可以是DEFAULT,LOW,HIGH中的任何一个。我得到了一些奇怪的行为,也许我不应该使用我的托管对象进行任何后台工作,即使它是只读的。

如果我不应该这样做,有关如何做的任何建议吗?为这个dispatch_async块创建另一个临时MOC?

0 个答案:

没有答案