我想将一些自定义方法直接放入每个NSManagedObject中。想想“计算字段”:这些方法根据实体上的持久值提供只读计算值 - 与this question相同。
我正在使用Xcode New File ...向导为我的每个实体创建NSManagedObject子类。我正试图从系统自动创建访问器中受益。例如:
核心数据实体:“网站”
@interface Site : NSManagedObject
当我继续向我的实体添加新属性时,我正在使用向导替换其对应的NSManagedObjects。替换每个文件后,我的自定义方法都会丢失。
我应该在别处创建自定义方法,以便继续使用向导吗?或者,我应该将方法保留在NSManagedObject上并手动为新属性添加Accessors吗?还有另一种方法吗?
答案 0 :(得分:3)
在NSManagedObject子类上创建一个类别:
@interface Site (CustomMethods)
和 Site + CustomMethods.m 。在Xcode中重新创建 Site.m 和 Site.h 时,不会覆盖这些文件。
可以使用所有类别方法,就好像它们已在类本身中声明一样。您在类别中唯一不能做的就是添加新的实例变量。
答案 1 :(得分:0)
使用向导创建初始托管对象后,我通常会手动更改它们。
另一种方法是创建向导生成的类文件的子类并使用它们。 重新生成它们时,所有自定义代码都在子类中,而不是覆盖的类文件。