我必须创建一个类方法,我需要检查一个特定的字符串是否与类中的属性相对应。
示例:
@interface aClass
@property (nonatomic, strong) aType *property1;
@end
在其他课程中:
+ (X*)createXwithProperty:(NSString*) aProperty
{
if([aClass haveProperty:aProperty])
{
return create(X);
}
else return nil;
}
我怎样才能实现这个目标?
答案 0 :(得分:3)
由于它是@propery,因此它具有getter和setter方法。
在你的例子中:
@property (nonatomic, strong) aType *property1;
Getter方法应该被称为property1
作为您的属性,因此您可以检查您的类实例是否响应该选择器,如下所示:
将NSString转换为选择器:
SEL selector = NSSelectorFromString(@"property1");
if ([aClassInstance respondsToSelector:selector]) {
NSLog(@"RESPONDS");
}
对不起,我要快速回答。我现在看到你要检查类是否具有特定属性,但是你没有类实例。 要查看类是否具有特定属性,请使用此方法(基本上,它与类实例的原理相同:)):
SEL selector = NSSelectorFromString(@"property1");
if ([aClassNotInstance instancesRespondToSelector:selector]) {
NSLog(@"RESPONDS");
}