我使用CoreData,并尝试进行异步获取请求。 请解释一下,为什么我应该使用" performBlock"在那种情况下的方法
[managedObjectcontext performBlock:^{
[managedObjectcontext executeRequest:asyncFetch error:&err];
}];
如果这种方式也有效吗?
[managedObjectcontext executeRequest:asyncFetch error:&err];
使用第一个和#34; performBlock"?
有什么好处答案 0 :(得分:2)
方法performBlock:和performBlockAndWait:用于向NSManagedObjectContext发送消息,无论是使用NSPrivateQueueConcurrencyType还是NSMainQueueConcurrencyType初始化MOC。如果您对这些上下文类型之一执行任何操作,则可以在块中执行。
performBlock:将块添加到后备队列并将其安排在自己的线程上运行。您可以将此用于长时间持久操作,因为此块将立即返回
performBlockAndWait:还会将块添加到后备队列并将其安排在自己的线程上运行。但是,块在块执行完毕之前不会返回,因此,它是一个阻塞调用。