【问题标题】:When should I use "performBlock" method?我什么时候应该使用“performBlock”方法?
【发布时间】:2016-08-03 12:02:31
【问题描述】:

我使用 CoreData 并尝试发出异步获取请求。 请解释一下,为什么我应该在这种情况下使用“performBlock”方法

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

如果这样也行吗?

[managedObjectcontext executeRequest:asyncFetch error:&err];

将第一个与“performBlock”一起使用有什么好处?

【问题讨论】:

  • 尝试开启核心数据线程调试

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


【解决方案1】:

方法 performBlock: 和 performBlockAndWait: 用于向您的 NSManagedObjectContext 发送消息,无论 MOC 是使用 NSPrivateQueueConcurrencyType 还是 NSMainQueueConcurrencyType 初始化的。如果您对其中一种上下文类型执行任何操作,请在一个块中执行。

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

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

【讨论】:

猜你喜欢
  • 2016-02-15
  • 2012-03-23
  • 2016-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多