我覆盖了核心数据结构的许多setter方法,以便将大部分“业务逻辑”保留在数据库中。覆盖核心数据中的多对多关系的setter方法的最佳方式是什么?看起来setter函数,对于一个叫做“事物”的关系,包括:
- (void)addThingsObject:(Thing *)value;
- (void)removeThingsObject:(Thing *)value;
- (void)addThings:(NSSet *)value;
- (void)removeThings:(NSSet *)value;我需要覆盖所有这四个函数吗?如何干净利落地做到这一点的最佳实践是什么?如果存在反向关系,我是否需要在setter中执行任何操作来确保正确设置反向关系?
发布于 2012-11-04 20:39:00
看看MoGenerator吧。它为核心数据中的每个实体创建两个类,其中一个类用于编写自定义代码来管理该实体。
发布于 2012-11-04 20:39:18
根据我的经验,覆盖xCode为您创建的方法有点限制了您的可能性。为您需要向添加方法的每个类创建一个类别,并且只添加您感兴趣的方法,这样更易于维护。例如,如果你想替换一个对象,在类别中添加一个replaceThingObject:(Thing*)obj1 withThingObject(Thing*)obj2方法。添加或删除也是如此,而不仅仅是替换。如果你不需要它们,那么仅仅为了跟踪xCode生成的代码而实现它们将是疯狂的……
https://stackoverflow.com/questions/13218435
复制相似问题