2010-06-04 47 views
1

是否有可能找到用特定字符串命名的对象。按字符串名称的目标C对象?

例如,我可以使用在PHP

$objectname="foo"; 
$foo="bar"; 
echo $$objectname="bar"; 

这可能吗? objectbyname会为此提供适当的功能。

回答

4

如果您将命名对象存储为属性或某种类型的字典,这可能是可能的。然后你可以做这样的事情:

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

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

而且我不确定ObjectiveC支持这个级别的程序设计。

0

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

2

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

例如下面的两行是等效的:

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