从包含其名称的字符串访问对象的属性

时间:2013-06-14 04:46:44

标签: ios objective-c objective-c-runtime

我有一个NSString *str = @"abc"和一个名为'abc'的属性的对象。如何使用'str'访问该属性。我知道我必须使用objective-c运行时,但不知道它是否可能。我不想设置该属性,而是我想使用该属性,如果属性'abc'是一个数组而不是我想要向该数组添加一个对象。我已经完成了

this链接,发现重新开始没什么帮助。

2 个答案:

答案 0 :(得分:3)

要执行此操作,您需要使用Key-Value Coding

  

本文档描述了NSKeyValueCoding非正式协议,它定义了一种机制,允许应用程序通过名称(或密钥)间接访问对象的属性,而不是直接通过调用访问器方法或实例变量。

答案 1 :(得分:2)

您可以通过调用valueForKey:来访问仅给定字符串的给定属性。但是,如果你希望改变与该键相关联的数组,则调用mutableArrayValueForKey:将允许您访问一个在原始对象上调用适当的mutator方法的数组(或者甚至为您提供对象本身,但是当你改变它时,那些是实现细节。