86 votes

Comment convertir int en string dans objective c: exemple de code

J'essaie de convertir un int en chaîne mais j'ai des problèmes. J'ai suivi l'exécution à travers le débogueur et la chaîne 'myT' a la valeur 'sum' mais l'instruction 'if' ne fonctionne pas correctement si 'sum' vaut 10,11,12. Ne devrais-je pas utiliser un type primitif int pour stocker le numéro? De plus, les deux méthodes que j'ai essayées (voir le code commenté) ne parviennent pas à suivre le vrai chemin de l'instruction 'if'. Merci!

 int x = [my1 intValue]; 
	int y = [my2 intValue]; 
	int sum = x+y;
	//myT = [NSString stringWithFormat:@"%d", sum];
	myT = [[NSNumber numberWithInt:sum] stringValue];

	if(myT==@"10" || myT==@"11" || myT==@"12")
		action = @"numGreaterThanNine";
 

187voto

Scott Points 8090

Si vous avez juste besoin d'un int à une chaîne, comme vous le suggérez, j'ai trouvé le moyen le plus simple de procéder comme suit:

 [NSString stringWithFormat:@"%d",numberYouAreTryingToConvert]
 

184voto

Robert Points 10822

Comment sur l'utilisation de la nouvelle littéraux de la syntaxe (XCode >= 4.4), il est un peu plus compact.

int myInt = 1;

NSString* myString = [@(myInt) stringValue];

(Les boîtes comme un NSNumber et utilise ses stringValue méthode)

33voto

grahamparks Points 10187

La version commentée est la manière la plus correcte de le faire.

Si vous utilisez l'opérateur == sur des chaînes, vous comparez les adresses des chaînes (où elles sont allouées en mémoire) plutôt que les valeurs des chaînes. Ceci est très occasionnellement utile (cela indique que vous avez exactement le même objet chaîne), mais vous voulez comparer les valeurs 99% du temps, ce que vous aimez ainsi:

 if([myT isEqualToString:@"10"] || [myT isEqualToString:@"11"] || [myT isEqualToString:@"12"])
 

12voto

Terry Wilcox Points 6999

"==" ne devrait pas être utilisé pour comparer des objets dans votre if. Pour NSString, utilisez isEqualToString: pour les comparer.

10voto

Amol Points 66
int val1 = [textBox1.text integerValue];
int val2 = [textBox2.text integerValue];

int resultValue = val1 * val2;

textBox3.text = [NSString stringWithFormat: @"%d", resultValue];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X