【发布时间】:2020-02-27 16:58:07
【问题描述】:
我想将只读示例/教程数据添加到我的基于 Core Data 的 macOS 应用程序中。
我将在包含示例数据的应用程序包中包含一个 SQL 文件。我的 NSPersistentContainer 将有 2 个 NSPersistentStore,一个可写,一个只读。我的模型只有一个默认配置,因为两家商店的模型相同。
我的 UI 需要知道显示的数据是否为只读数据,例如,以阻止该数据可拖动。
我知道 NSManagedObject 不支持只读状态,请参阅和:Is it possible to return NSManagedObjects as read-only in Core Data? ...和文档。
我认为最好的方法是向我的 NSManagedObject 派生类添加一个只读属性,可以在必要时进行查询。但是,我看不到如何轻松设置此属性!我找不到从 NSManagedObject 到 NSPersistentStore 的直接链接。
我可以设置一个 NSFetchRequest 并指定只读存储并查看 NSManagedObject 是否在其中,但这似乎有点荒谬。
请问我在这里遗漏了什么更明显的东西吗?
【问题讨论】:
-
大声思考:您能否使用一次性的临时上下文从只读存储中提取,以检索相关的 objectID,并与 awakeFromFetch 中的该列表进行比较以设置您的只读属性?
-
谢谢@pbasdf。这可能是相当合理的,因为只读项的集合不会很大。在那里我假设可能有一些简单的事情!