2010-08-05 9 views
0

Si dans une classe, j'ai une variable d'instance: nsstring * foo, maintenant je veux créer une variable avec une chaîne @ "foo". Exemple: J'ai la chaîne @ "foo", et avec cette chaîne, je veux un do: myobject.foo.Convertir une chaîne en variable

+0

ne pas me faire beaucoup de sens à ce jour - voulez-vous créer un NSString et le conserver ou quelque chose? Qu'est-ce que la méthode "do" est censée faire? –

Répondre

0

Je pense que ce que vous cherchez est KVC Key-Value Coding.

Il vous permet de récupérer ou de définir une propriété ou une variable d'instance sur un objet par son nom (une chaîne). Vous pouvez faire quelque chose comme:

id fooValue = [myobject valueForKey:@"foo"]; 
[myobject setValue:barValue forKey:@"foo"]; 
0

Si vous avez setter et les méthodes de lecture (ou les ont synthétisé), vous pouvez utiliser NSSelectorFromString() pour accéder et modifier votre variable.

Accès:

id foo = [self performSelector:NSSelectorFromString(@"foo")]; 

Modification:

[self performSelector:NSSelectorFromString([NSString stringWithFormat:@"set%@:, [@"foo" capitalizedString]]) withObject:foo]; 
Questions connexes