2015-09-17 23 views
1

我读了这个article在后台保存核心数据数据库中的对象。NSMangedObjectContext执行块在后台问题

在他们有这样的代码将数据保存在后台的文章的结尾:

[temporaryContext performBlock:^{ 
    // do something that takes some time asynchronously using the temp context 

我明白,如果我们使用performBlock操作将异步完成,但在什么排队?我需要把它放在后台线程这样的:

dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0), {() -> Void in 
      temporaryContext.performBlock({() -> Void in 

      }) 
     }) 

,或者它足够使用:

temporaryContext.performBlock({() -> Void in 

       }) 

回答

1

这就够用了:

temporaryContext.performBlock({() -> Void in 

}) 

您的代码将被调用在与一个temporaryContext关联的队列中。 temporaryContext是一个NSManagedObjectContext,它有自己的专用队列(NSPrivateQueueConcurrencyType)