objective-c nsstring nsarray nsnumber

objective c - Cómo convertir NSNumber a NSString



objective-c nsarray (7)

En Swift puedes hacer esto

let number : NSNumber = 95 let str : String = number.stringValue

Así que tengo un NSArray "myArray" con NSNumber y NSString . Los necesito en otra UIView así que voy así:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil]; details.subjectText = [[myArray objectAtIndex:indexPath.row] objectForKey:@"subject"];

El temaTexto funciona. Pero, ¿cómo puedo obtener el NSNumber s fuera de él? (Realmente los necesito como cadenas ...) Convertiría un NSString de un NSNumber como este: NSString *blah = [NSNumber intValue] . Pero no sé cómo configurarlo en el código anterior ...


Lo curioso es que NSNumber convierte a cadena automáticamente si se convierte en parte de una cadena. No creo que esté documentado. Prueba estos:

NSLog(@"My integer NSNumber:%@",[NSNumber numberWithInt:184]); NSLog(@"My float NSNumber:%@",[NSNumber numberWithFloat:12.23f]); NSLog(@"My bool(YES) NSNumber:%@",[NSNumber numberWithBool:YES]); NSLog(@"My bool(NO) NSNumber:%@",[NSNumber numberWithBool:NO]); NSString *myStringWithNumbers = [NSString stringWithFormat:@"Int:%@, Float:%@ Bool:%@",[NSNumber numberWithInt:132],[NSNumber numberWithFloat:-4.823f],[NSNumber numberWithBool:YES]]; NSLog(@"%@",myStringWithNumbers);

Se imprimirá:

My integer NSNumber:184 My float NSNumber:12.23 My bool(YES) NSNumber:1 My bool(NO) NSNumber:0 Int:132, Float:-4.823 Bool:1

Funciona tanto en Mac como en iOS

Este no funciona:

NSString *myNSNumber2 = [NSNumber numberWithFloat:-34512.23f];


Puedes hacerlo con:

NSNumber *myNumber = @15; NSString *myNumberInString = [myNumber stringValue];


Tratar:

NSString *myString = [NSNumber stringValue];


o pruebe NSString *string = [NSString stringWithFormat:@"%d", [NSNumber intValue], nil];


En Swift 3.0

let number:NSNumber = 25 let strValue = String(describing: number as NSNumber) print("As String => /(strValue)")

Podemos obtener el valor numérico en String.


//An example of implementation : // we set the score of one player to a value [Game getCurrent].scorePlayer1 = [NSNumber numberWithInteger:1]; // We copy the value in a NSNumber NSNumber *aNumber = [Game getCurrent].scorePlayer1; // Conversion of the NSNumber aNumber to a String with stringValue NSString *StringScorePlayer1 = [aNumber stringValue];