向核心数据类添加自定义方法

时间:2009-12-24 10:36:31

标签: iphone objective-c core-data

将自定义方法添加到核心数据生成类的最佳方法是什么?

例如,假设我有一个“Person”实体,其属性为“firstname”和“lastname”。我希望添加一个“fullname”方法,该方法返回firstname和lastname属性的串联。

我可以将这个方法添加到生成的.h和.m文件中,但是当我的实体可能仍然发生变化时,这在开发过程中很难维护。重新创建.h和.m文件将覆盖这些更改。另一个想法是子类化生成的类并在那里添加方法。

有更好的方法吗?

3 个答案:

答案 0 :(得分:40)

我发现添加与数据属性没有直接关联的自定义方法的最佳方法是使用类别。如果您在数据建模器中将Core Data实体创建为NSManagedObject的子类,这通常最有效,但它也可以在没有它的情况下工作。这样,所有机器生成的代码都可以保留在主.h和.m文件中,并且所有自定义代码都以.h和.m的形式存在于该类的类别中。

答案 1 :(得分:1)

我建议将这些方法添加到自定义NSManagedObject子类中。如果您担心在数据模型发生变化时维护访问者,同时保留自定义方法,我建议您查看“Wolf”Rentzsch的{​​{3}}。许多人为此目的发誓这个工具。

答案 2 :(得分:0)

您可以为实体创建自己的NSManagedObject子类。

NSManagedObject documentation

中有更好的解释