war*_*enm 3 properties objective-c selector
我习惯于在运行时使用doesRespondToSelector:和instancesRespondToSelector:确定对象是否有某些可用的方法.但是,在使用Core Data时,我没有看到我的@dynamic属性的预期行为.例如,如果sortOrder我的类上有属性,我可以使用Objective-C运行时在运行时看到此属性存在.但如果我问相关的Class对象是否instancesRespondToSelector:,我会回来NO.如果我使用运行时枚举可用的方法,我的动态getter/setter都不会出现在列表中,这是一致的,但不是我所期望的.
那么我的问题是:不使用运行时检查,是否有一种简单的方法可以确定NSManagedObject子类的实例是否响应与其@dynamic属性相对应的getter/setter选择器?
Mas*_*ero 12
您可以通过NSEntityDescription检查NSManagmentObject:
- (BOOL)hasPropertyWithName:(NSString *)name
{
NSEntityDescription *desc = self.entity;
return [desc.attributesByName objectForKey:name] != nil;
}
Run Code Online (Sandbox Code Playgroud)