Entonces tengo un NSArray
"myArray" con NSNumber
sy NSString
s. Los necesito en otro, 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 subjectText funciona. Pero, ¿cómo puedo sacarle NSNumber
provecho? (Que en realidad los necesito como cadenas ...) Me gustaría convertir una NSString
salida de un NSNumber
así:
NSString *blah = [NSNumber intValue]
. Pero no sé cómo configurarlo en el código anterior ...
objectForKey
. Por lo tanto, deberá extraer los valores apropiados de eso antes de intentar convertir. Tenga en cuenta que la mayoría de los tipos de objetos Cocoa, incluido NSNumber, se pueden convertir en cadenas llamando aldescription
método (o utilizando%@
una cadena de formato).Respuestas:
Tratar:
fuente
%f
esta manera:[NSString stringWithFormat:@"%f", yourDouble];
Puedes hacerlo con:
fuente
fuente
o tratar
NSString *string = [NSString stringWithFormat:@"%d", [NSNumber intValue], nil];
fuente
Lo curioso es que NSNumber se convierte en cadena automáticamente si se convierte en parte de una cadena. No creo que esté documentado. Prueba estos:
Imprimirá:
Funciona tanto en Mac como en iOS
Este no funciona:
fuente
%@
especificador de formato enviará el-description
mensaje al objeto receptor correspondiente. Usted puede hacer su última línea de trabajo con el mismo espíritu de la escritura:NSString *myNSNumber2 = [[NSNumber numberWithFloat:-34512.23f] description];
. Por lo que puedo decir,NSNumber
los métodosdescription
ystringValue
hacen lo mismo.En Swift puedes hacer así
fuente
En Swift 3.0
Podemos obtener el valor numérico en String.
fuente