我有一个 NSManagedObject 的子类,我想添加几个 ivars 来跟踪一些簿记。我不希望这些变量持续存在,因此我不将它们作为数据模型的一部分。
我无法找到执行此操作的正确方法。
- 我是否应该只在我的类中创建 ivar,创建相应的属性,然后在实现中综合它们?
- 我不应该创建 ivar,而只是声明属性,然后在实现中 @dynamic 属性吗?
- 我应该采取其他方法吗?
我应该在我的 NSManagedObject 子类中进行所有定制,还是应该创建我的子类的子类,这样如果我更改我的数据模型,我就不会在使用 xcode 生成时丢失所有定制我的 NSManagedObject 子类自动生成?
谢谢!
最佳答案
NSManagedObject
的文档中有一个名为Custom Instance Variables 的部分。它讨论了这两种方法。
transient 、建模属性和 ivar 都是很好的解决方案。这取决于品味和风格。
如果您使用 ivars,请记住一个非常重要的要点:您需要在 - (void)didTurnIntoFault
中清除 ivars 并在 - 中设置任何初始值(void)awakeFromFetch
和 - (void)awakeFromInsert
。您需要不触及-didTurnIntoFault
中的任何建模属性或关系,否则您会遇到麻烦。
关于objective-c - 将非持久变量添加到 nsmangedobject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9243363/