Objective C对象的字符串名称?

时间:2010-06-04 08:42:30

标签: iphone objective-c nsobject

是否可以找到以特定字符串命名的对象。

例如我可以在php中使用它

$objectname="foo";
$foo="bar";
echo $$objectname="bar";
这可能吗? objectbyname对此有适当的作用。

3 个答案:

答案 0 :(得分:4)

如果将命名对象存储为属性或存储在某种字典中,则可以。然后你可以做这样的事情:

// Put object into dictionary
[dictionaryWithObjects setValue:someNamedObject forKey:@"someNamedObject"];

// and then retrieve it
id object = [dictionaryWithObjects valueForKey:@"someNamedObject"];

我不确定ObjectiveC是否支持这种级别的元编程。

答案 1 :(得分:2)

它看起来并不像在PHP中那样,但是,是的,可以从字符串中获取一个类。您使用NSClassFromString功能。

例如,以下两行是等效的:

id a = [[NSClassFromString(@"NSString") alloc] init];
id a = [[NSString alloc] init];

答案 2 :(得分:0)

您可以使用NSClassFromString()来获取一个类,但对于对象的特定实例,我认为这是不可能的。