Apple 将故障描述为部分物化 future
,这与多个数据库中使用的术语部分物化 View
非常相似。 “partial”一词对我来说意味着该对象的某些字段已初始化(实现),而某些字段则未初始化(实现)。但苹果将故障描述为:
A managed object fault is an instance of the appropriate class, but its persistent variables are not yet initialized.
有什么办法可以部分意识到错误吗?例如。我有一个包含 10 个字段的对象,我想要一个仅实现两个字段的部分对象,而整个对象仍然是一个错误(因此所有其他字段仍然为零)。我在这里讨论的不是 NSFetchRequest
的 propertiesToFetch
,而是所谓的部分错误。
因为目前当故障被触发时,所有属性都被实现。以下是文档中的引用:
If you access a property on the Department object — its name, for example — the fault fires and Core Data executes a fetch for you to retrieve all of the object's attributes
如何自定义故障实现?
最佳答案
我不相信有办法做到这一点。当核心数据加载托管对象时,它会加载所有内容。您可以在 NSMangedObject 的接口(interface)中看到它有一个属性 isFault
,该属性要么为 true,要么为 false。
如果您有一个非常大的属性(例如,一团数据)并且除非需要,否则不想加载它,那么我建议将其存储为具有关系的单独实体。这样,只有当您请求该属性时,它才会被加载(出现故障)。
关于ios - 将 NSManagedObject 变成部分错误,其中某些字段为零,有些字段不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44155786/