gpt4 book ai didi

ios - 你能在上下文的 performBlock 之外使用 NSManagedObject 吗?

转载 作者:可可西里 更新时间:2023-11-01 03:24:32 25 4
gpt4 key购买 nike

NSManagedObjectContext 已经添加了 performBlock: 和 performBlockAndWait: 方法来帮助简化并发。我一直在使用它们——可能相当天真——我只是意识到有一个我从未真正问过的问题。

如果我在其中一个 performBlock 方法中创建一个 NSManagedObject 子类,它的“主”线程就是它的父上下文的线程——在 NSPrivateQueueConcurrencyType 的情况下,它可能是一个我没有其他访问权限的独立线程。

那么我是否需要调用 performBlock 来访问托管对象中包含的数据?或者在使用 setter/getter 的情况下是否有背景魔法来帮助保护我? (或二传手,尽管这似乎是个坏主意……)

最佳答案

NSManagedObject 不应该在它的 managedObjectContext 线程/队列之外使用(有时它工作,有时你崩溃 ==> 不要这样做) .

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

要访问“私有(private)队列”上下文拥有的对象,请始终使用 [context performBlock:...][context performBlockAndWait:...] ,除非您访问其 objectIDmanagedObjectContext 属性。

关于ios - 你能在上下文的 performBlock 之外使用 NSManagedObject 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com