Ale*_*der 4 objective-c ios dynamic-properties respondstoselector
我目前面临的问题是检查对象(NSManagedObject)的属性是否存在.
不幸的是方法
[[MyObject class] respondsToSelector:@selector(myProperty)];
Run Code Online (Sandbox Code Playgroud)
总是返回NO.
我认为这是因为CoreData生成的属性是一个新的样式属性ala
@property (nonatomic, strong) NSString *myProperty
Run Code Online (Sandbox Code Playgroud)
那么任何想法如何解决这个问题?
我非常感谢你的所有建议;)
提前致谢!亚历克斯
Tom*_*mmy 15
[[MyObject class] respondsToSelector:...]询问元对象是否响应该选择器.因此,实际上,它询问是否存在具有该选择器的类方法.如果您有以下代码,您的代码将返回YES:
+ (NSString *)myProperty;
Run Code Online (Sandbox Code Playgroud)
它返回NO,因为您具有等效的实例方法:
- (NSString *)myProperty;
Run Code Online (Sandbox Code Playgroud)
你需要调用respondsToSelector:你班级的一个实例.
您通常可以instancesRespondToSelector:直接在元类上使用(所以[MyObject instancesRespondToSelector:...]),但Core Data仅在您创建对象时才合成相关的方法实现,因此这是一个非启动器.但是,您可以通过正常NSEntityDescription路由创建实例并对其进行测试respondsToSelector:.
由于它是所有核心数据,另一种方法是通过其字典询问NSManagedObjectModel相关内容并检查实体描述的字典.NSEntityDescriptionentitiesByNamepropertiesByName
| 归档时间: |
|
| 查看次数: |
5621 次 |
| 最近记录: |