我使用CoreData并尝试发出异步提取请求。
请向我解释,在这种情况下为什么要使用“ performBlock”方法
[managedObjectcontext performBlock:^{
[managedObjectcontext executeRequest:asyncFetch error:&err];
}];
如果那样有效吗?
[managedObjectcontext executeRequest:asyncFetch error:&err];
将第一个与“ performBlock”一起使用有什么好处?
最佳答案
无论MOC是使用NSPrivateQueueConcurrencyType还是NSMainQueueConcurrencyType初始化的,方法performBlock:和performBlockAndWait:都用于向您的NSManagedObjectContext发送消息。如果对这些上下文类型之一执行任何操作,则将在一个块中执行。
performBlock:将块添加到后备队列,并安排它在其自己的线程上运行。您可以将其用于长时间持久操作,因为此块将立即返回
performBlockAndWait:还将块添加到后备队列并安排其在其自己的线程上运行。但是,直到该块执行完毕,该块才会返回,因此,这是一个阻塞调用。
关于ios - 什么时候应该使用“performBlock”方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38743095/