3

当前方法

  • 我使用检查器将属性的默认值直接设置为数据模型文件。

问题

  • 我有一个特定属性可以采用的值的枚举。
  • 我担心在后期维护它们可能会很困难。
  • 假设如果我决定更改枚举值,那么我将不得不手动去检查员并更改它。
  • 由于我有很多基于枚举值的属性,因此变得很困难。

问题

  • 如何以编程方式将默认值添加到核心数据属性?
  • 有没有其他方法可以做到这一点,这样维护会更容易?
4

2 回答 2

4

您可以在 Core Data 模型编辑器中以图形方式执行的所有操作,您都可以使用 Core Data 提供的类来创建/内省托管对象模型。对于这个用例,您可以使用NSEntityDescription查找实体、其propertiespropertiesByName访问器来查找NSAttributeDescription您感兴趣的属性,并setDefaultValue:执行与 Core Data 模型编辑器相同的操作。

您可能会发现这是最合适的方式来做您正在寻找的事情。或者,正如@DimitryShevchenko 所说,您可以在NSManagedObject子类的awakeFromInsert方法中初始化值——您选择的方式可能取决于您的工作流程或应用程序的其他要求。

于 2013-02-22T07:17:04.087 回答
3

您可以将 NSManagedObject 子类化并在awakeFromInsert

相关文档(参见对象生命周期

于 2013-02-22T06:11:57.483 回答