【问题标题】:Modern solution to accessing an NSManagedObjectContext across threads or queues跨线程或队列访问 NSManagedObjectContext 的现代解决方案
【发布时间】:2014-12-04 08:04:40
【问题描述】:

我看到了这个fascinating post,尤其是苹果工程师的这段话:

所以不要将 NSManagedObjectContext* 暴露给多个线程 (演员等)在任何情况下。有一种歧义。你可以 将 didSave 通知中的 NSNotification* 传递给另一个 线程的 MOC 的 -mergeChangesFromContextDidSaveNotification: 方法。

鉴于这篇文章现在已经 3 年多了,我想获得一个关于 NSManagedObjectContext 跨线程使用的现代(iOS 7 及更高版本)答案。一段时间以来,我一直在跨线程访问上下文,没有遇到任何问题。

那么 NSManagedObjectContext 上的 performBlock 方法是否消除了在创建它们的线程上使用上下文的需要,或者我应该重新设计我的应用程序以访问串行队列中的上下文?

【问题讨论】:

    标签: ios multithreading core-data thread-safety nsmanagedobjectcontext


    【解决方案1】:

    大部分规则仍然有效。但是,performBlock API 会为您处理这些问题。只要您始终在performBlock 内进行访问,它就会为您处理所有的序列化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-08
      • 2016-10-10
      • 2012-10-14
      • 1970-01-01
      • 2011-12-18
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多