背景
我用的是相当好的
mogenerator
mogenerator按如下方式构造类:
NSManagedObject
_JGTrainingBase
JGTrainingBase
_JGTrainingGroup
JGTrainingGroup
-
以下划线开头的类是由mogenerator用核心数据访问器生成的。
-
不带下划线的类是人工可编辑的类,因此您可以将自定义方法放在其中,并且在更改数据模型并重新运行mogenerator时不会覆盖它。
-
培训小组的实体有许多关系,称为“儿童”。
-
我正在使用核心数据访问器来修改我的关系。
我想要什么
我想在添加子对象之前更新duration-一个临时属性。
问题
@implementation JGTrainingGroup
...
-(void)addChildrenObject:(JGTrainingGroup *)value_ {
[self updateDuration];
[super addChildrenObject:value_];
}
...
@end
但当我调用此方法时,会收到一条错误消息:
[JGTrainingGroup addChildrenObject:]: unrecognized selector sent to instance 0x10667fa30
生成的代码
@interface _JGTrainingBase : NSManagedObject {}
// Method declarations
@end
@interface _JGTrainingBase (CoreDataGeneratedAccessors)
- (void)addChildrenObject:(JGTrainingBase*)value_;
- (void)removeChildrenObject:(JGTrainingBase*)value_;
// Lots more methods
@end
-
为什么super不响应addChildrenObject:method?是不是和这些被添加到类别样式中有关?
-
如何从子类访问核心数据生成的方法?
注意
谢谢你的帮助我了解这里发生了什么。