我什么时候应该使用" performBlock"方法?

时间:2016-08-03 12:02:31

标签: ios objective-c core-data objective-c-blocks

我使用CoreData,并尝试进行异步获取请求。 请解释一下,为什么我应该使用" performBlock"在那种情况下的方法

[managedObjectcontext performBlock:^{
    [managedObjectcontext executeRequest:asyncFetch error:&err];
}];

如果这种方式也有效吗?

[managedObjectcontext executeRequest:asyncFetch error:&err];

使用第一个和#34; performBlock"?

有什么好处

1 个答案:

答案 0 :(得分:2)

方法performBlock:和performBlockAndWait:用于向NSManagedObjectContext发送消息,无论是使用NSPrivateQueueConcurrencyType还是NSM​​ainQueueConcurrencyType初始化MOC。如果您对这些上下文类型之一执行任何操作,则可以在块中执行。

performBlock:将块添加到后备队列并将其安排在自己的线程上运行。您可以将此用于长时间持久操作,因为此块将立即返回

performBlockAndWait:还会将块添加到后备队列并将其安排在自己的线程上运行。但是,块在块执行完毕之前不会返回,因此,它是一个阻塞调用。