Set Objective-C property by string

2020-02-11 18:00发布

问题:

I'm wondering if there's an easy way to set (or retrieve) an Objective-C property by a NSString... It is possible to use NSSelectorFromString, but I'd like an easier (and less hacky way) to do it... Something like

[object setProperty:@"propertyValue" named:@"propertyName"];

is equivalent to:

object.propertyName = @"propertyValue";

I don't really want to mess around with the @"propertyName" and turn it into a @"setPropertyName:" for the NSSelectorFromString command... I may have no other choice, but if anyone knows a better way to do this, your help would be greatly appreciated!

回答1:

Use Key-Value Coding. Your example would be [object setValue:@"propertyValue" forKey:@"propertyName"].