ios – 你可以在它的上下文的performBlock之外使用NSManagedObject吗?

ios – 你可以在它的上下文的performBlock之外使用NSManagedObject吗?,第1张

概述NSManagedObjectContext已经添加了performBlock:和performBlockAndWait:方法,以帮助简化并发.我一直在使用它们 – 可能相当天真 – 我只是意识到有一个我从未真正问过的问题. 如果我在其中一个performBlock方法中创建一个NSManagedObject子类,它的’home’线程就是它的父上下文的线程 – 在NSPrivateQueueCon NSManagedobjectContext已经添加了performBlock:和performBlockAnDWait:方法,以帮助简化并发.我一直在使用它们 – 可能相当天真 – 我只是意识到有一个我从未真正问过的问题.

如果我在其中一个performBlock方法中创建一个NSManagedobject子类,它的’home’线程就是它的父上下文的线程 – 在nsprivateQueueConcurrencyType的情况下,它可能是一个独立的线程,我没有其他访问权限.

那么我是否需要执行performBlock调用才能访问托管对象中包含的数据?或者是否有背景魔法在使用吸气剂的情况下帮助保护我? (或者是安装者,虽然这看起来像个坏主意……)

解决方法 NSManagedobject不应该在其managedobjectContexts线程/队列之外使用(有时它会工作,有时你崩溃==>不要这样做).

CoreData不保证对对象的安全读取访问.

要访问“私有队列”上下文所拥有的对象,请始终使用[context performBlock:…]或[context performBlockAnDWait:…],除非您访问其objectID或managedobjectContext属性.

总结

以上是内存溢出为你收集整理的ios – 你可以在它的上下文的performBlock之外使用NSManagedObject吗?全部内容,希望文章能够帮你解决ios – 你可以在它的上下文的performBlock之外使用NSManagedObject吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1098670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存