Question

Je suis en train de convertir un entier en une chaîne mais je ne parviens pas à. J'ai suivi l'exécution par le débogueur et la chaîne « Myt » obtient la valeur de la « somme », mais le « si » déclaration ne si la « somme » fonctionne pas correctement est 10,11,12. Dois-je pas utiliser un type int primitive pour enregistrer le numéro? En outre, les deux méthodes que j'ai essayé (voir code commenté-out) ne parviennent pas à suivre le vrai chemin de la déclaration « si ». 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";
Était-ce utile?

La solution

La commenté version est la façon plus correcte de le faire.

Si vous utilisez l'opérateur == sur les chaînes, que vous comparez les adresses des chaînes (où ils sont alloués en mémoire) plutôt que les valeurs des chaînes. Ceci est très utile de temps en temps (il indique que vous avez l'objet même chaîne exacte), mais 99% du temps que vous souhaitez comparer les valeurs, que vous faites comme ceci:

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

Autres conseils

Si vous avez juste besoin d'un int à une chaîne comme vous le suggérez, j'ai trouvé la meilleure façon est de faire comme ci-dessous:

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

Vous pouvez utiliser littéraux, il est plus compact.

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

(boîtes en NSNumber et utilise son la méthode de stringValue)

== ne doit pas être utilisé pour comparer des objets dans votre if. Pour NSString utilisation isEqualToString: pour les comparer.

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

int resultValue = val1 * val2;

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

convertir simplement int à NSString utiliser:

  int x=10;

  NSString *strX=[NSString stringWithFormat:@"%d",x];
scroll top