当前方法
- 我使用检查器将属性的默认值直接设置为数据模型文件。
问题
- 我有一个特定属性可以采用的值的枚举。
- 我担心在后期维护它们可能会很困难。
- 假设如果我决定更改枚举值,那么我将不得不手动去检查员并更改它。
- 由于我有很多基于枚举值的属性,因此变得很困难。
问题
- 如何以编程方式将默认值添加到核心数据属性?
- 有没有其他方法可以做到这一点,这样维护会更容易?
当前方法
问题
问题
您可以在 Core Data 模型编辑器中以图形方式执行的所有操作,您都可以使用 Core Data 提供的类来创建/内省托管对象模型。对于这个用例,您可以使用NSEntityDescription
查找实体、其properties
或propertiesByName
访问器来查找NSAttributeDescription
您感兴趣的属性,并setDefaultValue:
执行与 Core Data 模型编辑器相同的操作。
您可能会发现这是最合适的方式来做您正在寻找的事情。或者,正如@DimitryShevchenko 所说,您可以在NSManagedObject
子类的awakeFromInsert
方法中初始化值——您选择的方式可能取决于您的工作流程或应用程序的其他要求。
您可以将 NSManagedObject 子类化并在awakeFromInsert
相关文档(参见对象生命周期)