使用属性的名称动态访问Objective-C属性

我知道对象的属性的字符串名称。如何使用字符串获取和设置该属性?
虽然@weichsel是正确的,有一个更好的方法。

使用:

[anObject valueForKey: @"propertyName"];

[anObject setValue:value forKey:@"propertyName"];

显然,@“propertyName”可以是在运行时动态组合的NSString。

这种技术称为Key Value Coding,是Cocoa的基础。

为什么这更好是因为-valueForKey将做任何必要的“框”,无论属性返回到对象的类型。因此,如果属性是int类型,它将返回一个包含int的NSNumber实例。

这更容易处理 – performSelector只适用于适合指针内存的类型。

请注意,还有-setValue:forKey :.

http://stackoverflow.com/questions/1969897/access-objective-c-property-dynamically-using-the-name-of-the-property

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:使用属性的名称动态访问Objective-C属性