2012-11-01 2 views
0

Je fais quelque chose de légèrement ou de monumentalement faux.Syntaxe Aide requise (utilisation d'une variable de chaîne)

Je veux échanger un UIColour pour une variable programmable, par exemple:

NSString *DataColourTitle = @"greenColor"; 
[[UINavigationBar appearance] setTintColor: [UIColor [NSString stringWithFormat: @"%@", DataColourTitle]]]; 

Je reçois une erreur d'identifiant prévue à la partie NSString et n'ont pas travaillé sur la mise en forme nécessaire pour y parvenir.

Répondre

1

La syntaxe pour appeler une méthode de classe de UIColor serait [UIColor <#some selector#>] où < #some selector #> est un identificateur tel que greenColor, pas une chaîne. Le sélecteur attendu est une référence au code qui peut renvoyer un objet UIColor, tandis que @"greenColor" est juste une chaîne littérale et statique d'octets encapsulés en tant qu'objet NSString.

Essayez quelque chose comme:

SEL green = NSSelectorFromString(@"greenColor"); 
UIColor *color = [UIColor performSelector:green]; 
[[UINavigationBar appearance] setTintColor: color]; 
+0

Brillant - changé @ "greenColor" à ma variable dans le NSSelectorFromString et travaillé première fois. Merci beaucoup. –