Ios 重写的NSManagedObject获取程序无法识别
我无法将布尔属性与重写的getter方法名称一起使用。例如,在NSManageObject子类的标题中,我有:Ios 重写的NSManagedObject获取程序无法识别,ios,dynamic,properties,unrecognized-selector,Ios,Dynamic,Properties,Unrecognized Selector,我无法将布尔属性与重写的getter方法名称一起使用。例如,在NSManageObject子类的标题中,我有: @property (nonatomic, retain, getter=isActive) NSNumber * active; 在实施文件中,我有: @dynamic active; Xcode识别“isActive”方法,并在我打字时自动完成它,代码编译时不会出错。但是,该代码: MyObject *newObject = (MyObject *)[NSEntityDescr
@property (nonatomic, retain, getter=isActive) NSNumber * active;
在实施文件中,我有:
@dynamic active;
Xcode识别“isActive”方法,并在我打字时自动完成它,代码编译时不会出错。但是,该代码:
MyObject *newObject = (MyObject *)[NSEntityDescription insertNewObjectForEntityForName:@"MyObject" inManagedObjectContext:[self context]];
NSNumber * tagActive = [newObject isActive];
在经典中失败:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MyObject isActive]: unrecognized selector sent to instance 0xb67e760'
我已经测试了如何删除自定义getter,并使用[myObject active]简单地访问活动属性,这是可行的。NSManagedObject属性不支持这一点,还是我做错了什么?@dynamic实际上并没有为方法生成setter和getter,它只是告诉编译器某些东西会生成。因此,我认为NSManagedObject只生成标准命名的setter和getter谢谢您的解释!