NSManagedObject在指定队列上使用

时间:2018-11-11 11:58:05

标签: ios core-data dispatch-queue

我有一个正在后台队列上运行的后台任务。我需要在此任务中加载一些NSManagedObjects。我知道我需要使用私有上下文,但是如何将此上下文绑定到现有的后台队列,以便可以在后台任务中使用此NSManagedObjects?我应该在此后台任务performBlockperformBlockAndWait中执行,还是应该仅从私有performBlock上的UI线程NSManagedObjectContext进行调用,并使用此上下文中的队列执行任何后台任务包括加载保存的NSManagedObjects以及其他后台任务,例如与rest-api通信等等。

我只是不确定是否可以从上下文中使用此队列来执行与CoreData NSManagedObjects不相关的任何其他任务?如果不是,如何在为任务创建的队列中使用那些NSManagedObjects

1 个答案:

答案 0 :(得分:0)

尽管队列管理总是很棘手,但是由Core Data旋转的队列可以像其他任何队列一样运行代码。

尤其是,您可以使用托管对象上下文中的队列来执行与Core Data或其托管对象无关的其他任务。当Core Data于2005年在macOS上首次发布时,必须在主线程上访问托管对象,这当然可能很忙于其他任务。