我什么时候应该使用 "performBlock" 方法?
When should I use "performBlock" method?
我使用 CoreData 并尝试发出异步获取请求。
请解释一下,为什么在那种情况下我应该使用 "performBlock" 方法
[managedObjectcontext performBlock:^{
[managedObjectcontext executeRequest:asyncFetch error:&err];
}];
如果这种方式也有效?
[managedObjectcontext executeRequest:asyncFetch error:&err];
第一个与 "performBlock" 一起使用有什么好处?
方法 performBlock: 和 performBlockAndWait: 用于向您的 NSManagedObjectContext 发送消息,无论 MOC 是使用 NSPrivateQueueConcurrencyType 还是 NSMainQueueConcurrencyType 初始化的。如果您对这些上下文类型之一执行任何操作,则在一个块中执行。
performBlock:将块添加到后备队列并将其调度到 运行 在它自己的线程上。您可以将其用于长期持续操作,因为此块将 return 立即
performBlockAndWait:还将块添加到后备队列,并将其安排到 运行 在它自己的线程上。但是,直到块执行完毕,块才会 return,因此,这是一个阻塞调用。
我使用 CoreData 并尝试发出异步获取请求。 请解释一下,为什么在那种情况下我应该使用 "performBlock" 方法
[managedObjectcontext performBlock:^{
[managedObjectcontext executeRequest:asyncFetch error:&err];
}];
如果这种方式也有效?
[managedObjectcontext executeRequest:asyncFetch error:&err];
第一个与 "performBlock" 一起使用有什么好处?
方法 performBlock: 和 performBlockAndWait: 用于向您的 NSManagedObjectContext 发送消息,无论 MOC 是使用 NSPrivateQueueConcurrencyType 还是 NSMainQueueConcurrencyType 初始化的。如果您对这些上下文类型之一执行任何操作,则在一个块中执行。
performBlock:将块添加到后备队列并将其调度到 运行 在它自己的线程上。您可以将其用于长期持续操作,因为此块将 return 立即
performBlockAndWait:还将块添加到后备队列,并将其安排到 运行 在它自己的线程上。但是,直到块执行完毕,块才会 return,因此,这是一个阻塞调用。