Объект C объект по имени строки? - PullRequest
1 голос
/ 04 июня 2010

Можно ли найти объект, названный с определенной строкой.

Например, я могу использовать это в php

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

это возможно? objectbyname будет подходящей функцией для этого.

Ответы [ 3 ]

4 голосов
/ 04 июня 2010

Это могло бы быть возможно, если бы вы хранили именованные объекты как свойства или в каком-то словаре. Тогда вы могли бы сделать что-то вроде этого:

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

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

И я не уверен, что ObjectiveC поддерживает этот уровень метапрограммирования.

2 голосов
/ 04 июня 2010

Это выглядит не совсем так, как в PHP, но, да, можно получить класс из строки. Вы используете функцию NSClassFromString.

Например, следующие две строки эквивалентны:

id a = [[NSClassFromString(@"NSString") alloc] init];
id a = [[NSString alloc] init];
0 голосов
/ 04 июня 2010

Вы можете использовать NSClassFromString(), чтобы получить класс, но для конкретных экземпляров объекта я не думаю, что это возможно.

...