我在使用带有覆盖的 getter 方法名称的 bool 属性时遇到问题。例如,在我的 NSManageObject 子类的标题中,我有:
@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] 访问 active 属性,这确实有效。 NSManagedObject 属性不支持这个还是我做错了什么?
最佳答案
@dynamic 实际上并不为方法生成 setter 和 getter,它只是告诉编译器某些东西会生成。所以我认为 NSManagedObject 只生成标准命名的 setter 和 getter
关于ios - 覆盖的 NSManagedObject getter 无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19817712/