I want to get a class's property from a string. For example:
NSString * propertyStr = @"propertyStr";
if ([class haveProperty:propertyStr]) {
class.propertyStr = @"avalue";
}
I don't know if i have say it clear.
I want to get a class's property from a string. For example:
NSString * propertyStr = @"propertyStr";
if ([class haveProperty:propertyStr]) {
class.propertyStr = @"avalue";
}
I don't know if i have say it clear.
You want to check if your class have property called propertyStr
, for that you can do :
NSString *propertyStr = @"propertyStr";
if ([class respondsToSelector:NSSelectorFromString(propertyStr)]) {
class.propertyStr = @"avalue";
}
Since @property and @syn automatically create the getter and setters we can use the below code to check if any class responds to particular message (setter)
NSString *propertyStr = @"propertyStr";
if ([class respondsToSelector:NSSelectorFromString(propertyStr)])
{
[class setValue:@"Value" forKey:propertyStr];
}
Try with respondsToSelector
Syntax
if ([class respondsToSelector:@selector(property)])
[[class property] setProperty:@"value"];
Example
if ([UINavigationBar respondsToSelector:@selector(appearance)])
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackOpaque];
You can try this..
NSString *selName = @"yourPropertyName";
SEL selector = NSSelectorFromString(selName);
if ([className respondsToSelector:selector])
className.selName = /* your action*/;