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];