以编程方式为iOS的核心数据属性(列)的默认值

时间:2013-02-22 06:08:02

标签: ios objective-c core-data

当前方法

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

问题

  • 我对特定属性可以采用的值进行枚举。
  • 我担心在稍后阶段维护它们可能会很困难。
  • 假设我决定更改枚举值,那么我必须手动去检查员并进行更改。
  • 由于我有很多基于枚举值的属性,因此很难。

问题

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

2 个答案:

答案 0 :(得分:3)

您可以对NSManagedObject进行子类化,并在awakeFromInsert

中设置默认值

Related docs(参见对象生命周期

答案 1 :(得分:2)

您可以在Core Data模型编辑器中以图形方式执行的所有操作都可以使用Core Data提供的类来创建/内省托管对象模型。对于此用例,您可以使用NSEntityDescription查找实体,其propertiespropertiesByName个访问者,以查找您感兴趣的属性的NSAttributeDescription,以及{ {3}}做核心数据模型编辑器做的事情。

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