Me gustaría convertir un inten un NSStringen Objective C.
¿Cómo puedo hacer esto?
objective-c
Yogini
fuente
fuente

NSString *strValue = @(myInt).stringValue;stringValue, pero todos sídescription, por lo que, como buena práctica, es mejor acostumbrarse a usarlosdescription(NSNumbersí, no hay necesidad de preocuparse aquí). Prueba esto (descriptionimprimirá la fecha, perostringValuefallará):NSNumber *test = (id)[NSDate date]; NSLog(@"description: %@", test.description); NSLog(@"string value: %@", test.stringValue);@(myInt)es una expresión en caja para[NSNumber numberWithInt:]y siempre devolverá un NSNumber cuando se le dé un int.[NSNumber stringValue]siempre devolverá un NSString. En el código de su comentario, forzar la transmisión(id)y la asignación a un tipo diferente es un claro error de programación: nunca debe hacer eso. Es como mezclar un método y luego argumentar que ese método no está haciendo lo que estaba haciendo originalmente.!) y descubrirá que lo estaba haciendo mal en Objective-C. Si el objetotestno fue creado por usted, entonces no es su responsabilidad. Puede intentar llamarisKindOfClass:a todos sus parámetros recibidos, pero incluso eso puede ser engañado (pasando una estructura en lugar de un NSObject, por ejemplo). Así que no lo haga: simplemente documente explícitamente los tipos esperados.(id)es un error, fue solo para demostrar el punto en el quedescriptionse prefiere a la OMIstringValue(puedo estar equivocado, no he programado en ObjC durante años)fuente
@(myInt)es una expresión en caja , devuelve un NSNumber.Ésta es una de las muchas formas.
fuente
Si esta cadena es para presentarla al usuario final, debe usar
NSNumberFormatter. Esto agregará miles de separadores y respetará la configuración de localización para el usuario:En los EE. UU., Por ejemplo, eso crearía una cadena
10,000, pero en Alemania, eso sería10.000.fuente