Estoy tratando de convertir un entero a una cadena, pero estoy teniendo problemas. He seguido la ejecución a través del depurador y la cadena ‘myT’ obtiene el valor de ‘suma’, pero el ‘if’ no funciona correctamente si la ‘suma’ es 10,11,12. No debo ser el uso de una primitiva de tipo int para almacenar el número? Además, ambos métodos he intentado (ver comentada código) no seguir el verdadero camino de la ‘if’. Gracias!

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

    if(myT[email protected]"10" || myT[email protected]"11" || myT[email protected]"12")
        action = @"numGreaterThanNine";
  • Hay una razón por la que usted está poniendo el número entero en una cadena? Sería mucho más fácil escribir su prueba como if (sum >= 10 && sum <= 12)
  • Si las respuestas abajo confunden, echa un vistazo a este interrogante: stackoverflow.com/questions/3414644/…
InformationsquelleAutor john | 2009-07-09

6 Comentarios

  1. 32

    La comentada versión es la manera más correcta de hacer esto.

    Si utiliza el == operador de cadenas, se está comparando con el de las cadenas de direcciones (donde están asignados en la memoria) en lugar de los valores de las cadenas. Esto es muy útil ocasional (indica que tiene exactamente la misma cadena de objeto), pero el 99% del tiempo que usted desea comparar los valores, los cuales se hacen así:

    if([myT isEqualToString:@"10"] || [myT isEqualToString:@"11"] || [myT isEqualToString:@"12"])
    • Leve error, una falta : en la 2ª comparación.
  2. 166

    Si simplemente necesita un int para una cadena como usted sugiere, he encontrado que la manera más fácil es hacer de la siguiente manera:

    [NSString stringWithFormat:@"%d",numberYouAreTryingToConvert]
  3. 159

    Usted puede usar literales, es más compacto.

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

    (Cuadros como NSNumber y utiliza su stringValue método)

    • es más flexible y potente y debe ser utilizado en general. Esto es sólo un acceso directo, si es una simple conversión que usted está después.
  4. 8
    int val1 = [textBox1.text integerValue];
    int val2 = [textBox2.text integerValue];
    
    int resultValue = val1 * val2;
    
    textBox3.text = [NSString stringWithFormat: @"%d", resultValue];

Dejar respuesta

Please enter your comment!
Please enter your name here