NSManagedObject子类上的“计算字段”的方法

时间:2012-07-27 19:49:01

标签: core-data nsmanagedobject calculated-field

我想将一些自定义方法直接放入每个NSManagedObject中。想想“计算字段”:这些方法根据实体上的持久值提供只读计算值 - 与this question相同。

我正在使用Xcode New File ...向导为我的每个实体创建NSManagedObject子类。我正试图从系统自动创建访问器中受益。例如:

核心数据实体:“网站”

@interface Site : NSManagedObject

当我继续向我的实体添加新属性时,我正在使用向导替换其对应的NSManagedObjects。替换每个文件后,我的自定义方法都会丢失。

我应该在别处创建自定义方法,以便继续使用向导吗?或者,我应该将方法保留在NSManagedObject上并手动为新属性添加Accessors吗?还有另一种方法吗?

2 个答案:

答案 0 :(得分:3)

在NSManagedObject子类上创建一个类别:

  • 在“新建文件...”对话框中,选择“Objective-C category”。
  • 在“网站”上创建“CustomMethods”类别。
  • Xcode将创建文件 Site + CustomMethods.h ,为相应的实现声明@interface Site (CustomMethods) Site + CustomMethods.m
  • 将自定义方法添加到类别中。

在Xcode中重新创建 Site.m Site.h 时,不会覆盖这些文件。

可以使用所有类别方法,就好像它们已在类本身中声明一样。您在类别中唯一不能做的就是添加新的实例变量。

答案 1 :(得分:0)

使用向导创建初始托管对象后,我通常会手动更改它们。

另一种方法是创建向导生成的类文件的子类并使用它们。 重新生成它们时,所有自定义代码都在子类中,而不是覆盖的类文件。