Iphone 检查类(不是类的实例)中是否存在特定属性
我必须创建一个类方法,并且我需要检查特定的字符串是否对应于类中的属性 例如:Iphone 检查类(不是类的实例)中是否存在特定属性,iphone,ios,nsobject,Iphone,Ios,Nsobject,我必须创建一个类方法,并且我需要检查特定的字符串是否对应于类中的属性 例如: @interface aClass @property (nonatomic, strong) aType *property1; @end 在其他类别中: + (X*)createXwithProperty:(NSString*) aProperty { if([aClass haveProperty:aProperty]) { return create(X); } else
@interface aClass
@property (nonatomic, strong) aType *property1;
@end
在其他类别中:
+ (X*)createXwithProperty:(NSString*) aProperty
{
if([aClass haveProperty:aProperty])
{
return create(X);
}
else return nil;
}
如何实现这一点?因为它是@propery,所以它有getter和setter方法 在您的示例中:
@property (nonatomic, strong) aType *property1;
Getter方法应作为属性调用property1
,以便检查类实例是否响应该选择器,如下所示:
将NSString转换为选择器:
SEL selector = NSSelectorFromString(@"property1");
if ([aClassInstance respondsToSelector:selector]) {
NSLog(@"RESPONDS");
}
对不起,我回答得太快了。现在我看到您想要检查类是否具有特定属性,但您没有类实例。
要查看类是否具有特定属性,请使用以下命令(基本上,其原则与类实例相同:):
因为它是@propery,所以它有getter和setter方法 在您的示例中:
@property (nonatomic, strong) aType *property1;
Getter方法应作为属性调用property1
,以便检查类实例是否响应该选择器,如下所示:
将NSString转换为选择器:
SEL selector = NSSelectorFromString(@"property1");
if ([aClassInstance respondsToSelector:selector]) {
NSLog(@"RESPONDS");
}
对不起,我回答得太快了。现在我看到您想要检查类是否具有特定属性,但您没有类实例。
要查看类是否具有特定属性,请使用以下命令(基本上,其原则与类实例相同:):
现在我想使用相同的验证机制来检查NSManagedObject中的属性,问题是这无法完成(请参阅本文:)解决方案是创建NSEntityDescription,没有实例化任何类的其他解决方案?现在我想使用相同的验证机制来检查NSManagedObject中的属性,问题是这无法实现(请参阅本文:)解决方案是创建一个NSEntityDescription,没有实例化任何类的其他解决方案?