2010-06-04 5 views
1

Est-il possible de trouver l'objet nommé avec une chaîne spécifique.Objet Objective C par nom de chaîne?

Par exemple, je peux utiliser que php

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

est-ce possible? objectbyname serait une fonction appropriée pour cela.

Répondre

4

Cela peut être possible si vous avez stocké des objets nommés en tant que propriétés ou dans un dictionnaire. Ensuite, vous pouvez faire quelque chose comme ceci:

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

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

Je ne suis pas sûr ObjectiveC soutient que le niveau de métaprogrammation.

0

Vous pouvez utiliser NSClassFromString() pour obtenir une classe, mais pour des instances spécifiques d'un objet, je ne pense pas que ce soit possible.

2

Cela ne ressemble pas à ce qu'il est en PHP mais, oui, il est possible d'obtenir une classe à partir d'une chaîne. Vous utilisez la fonction NSClassFromString.

Par exemple, les deux lignes suivantes sont équivalentes:

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