ios - 覆盖的 NSManagedObject getter 无法识别

标签 ios dynamic properties unrecognized-selector

我在使用带有覆盖的 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/

相关文章:

ios - PageControl 将标记放置在我想要的位置 ios 9

ios - SwiftUI:使用@Binding 关闭模态视图不起作用

javascript - 通过 angularjs 动态下拉菜单

C++在不同的函数中重新分配指向动态内存中数组的指针

swift - 如何获取 Swift 中的所有静态属性?

asp.net-mvc-3 - DropDownListFor 和导航属性

ios - 为什么在模拟器上运行时 mach_wait_until 迟到?

ios - 如何以编程方式使用自动布局将事件指示器定位到其 super View 的中心?

c++ - 覆盖动态分配的内存-C++

c# - 如何在包含一个变量的类中使用多个属性?