我目前面临的问题是检查对象(NSManagedObject)的属性是否存在。
不幸的是方法
[[MyObject class] respondsToSelector:@selector(myProperty)];
总是返回NO。
我认为这是因为CoreData生成的属性是一个新样式的属性ala
@property (nonatomic, strong) NSString *myProperty
那么有什么想法如何解决这个问题吗?
我非常感谢您的所有建议;)
提前致谢!
亚历克斯
[[MyObject class] respondsToSelector:...]
询问元对象是否响应该选择器。因此,实际上,它询问是否存在具有该选择器的类方法。如果您有以下情况,您的代码将返回 YES:
+ (NSString *)myProperty;
它返回 NO,因为您拥有与实例方法等效的内容:
- (NSString *)myProperty;
你需要打电话respondsToSelector:
在你的班级的一个实例上。
你通常可以使用instancesRespondToSelector:
直接在元类上(所以,[MyObject instancesRespondToSelector:...]
)但 Core Data 仅在您创建对象时综合相关方法实现,因此这是不可能的。但是,您可以通过正常的方式创建一个实例NSEntityDescription
路线和测试respondsToSelector:
关于这一点。
由于都是核心数据,另一种选择是询问NSManagedObjectModel
对于相关的NSEntityDescription
通过其entitiesByName
字典并检查实体描述propertiesByName
字典。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)