[[MyObject class] respondsToSelector:...]询问元对象是否响应该选择器。因此,实际上,它询问是否存在具有该选择器的类方法。如果您有以下情况,您的代码将返回 YES:
+ (NSString *)myProperty;
它返回 NO 因为你有实例方法的等价物:
- (NSString *)myProperty;
你需要调用respondsToSelector:你的类的一个实例。
您通常可以instancesRespondToSelector:直接在元类 (so, [MyObject instancesRespondToSelector:...]) 上使用,但 Core Data 仅在您创建对象时综合相关方法实现,因此这不是入门。但是,您可以通过正常NSEntityDescription路线创建一个实例并对其进行测试respondsToSelector:。
由于它都是核心数据,另一种方法是通过其字典询问NSManagedObjectModel相关信息并检查实体描述的字典。NSEntityDescriptionentitiesByNamepropertiesByName