J'ai donc un NSArray
"myArray" avec NSNumber
s et NSString
s. J'en ai besoin dans un autre UIView
alors je vais comme ça:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
details.subjectText = [[myArray objectAtIndex:indexPath.row] objectForKey:@"subject"];
Le subjectText fonctionne. Mais comment puis-je en retirer le NSNumber
s? (Je les ai réellement besoin comme des chaînes ...) Je convertir un NSString
d'un NSNumber
comme celui - ci:
NSString *blah = [NSNumber intValue]
. Mais je ne sais pas comment le configurer dans le code ci-dessus ...
objectForKey
. Vous devrez donc en extraire les valeurs appropriées avant de tenter de convertir. Notez que la plupart des types d'objets Cocoa, y compris NSNumber, peuvent être convertis en chaînes en appelant ladescription
méthode (ou en utilisant%@
dans une chaîne de format).Réponses:
Essayer:
la source
%f
ce qui[NSString stringWithFormat:@"%f", yourDouble];
Vous pouvez le faire avec:
la source
la source
ou essayez
NSString *string = [NSString stringWithFormat:@"%d", [NSNumber intValue], nil];
la source
Ce qui est drôle, c'est que NSNumber se convertit automatiquement en chaîne s'il devient une partie d'une chaîne. Je ne pense pas que ce soit documenté. Essayez ceci:
Il imprimera:
Fonctionne sur Mac et iOS
Celui-ci ne fonctionne pas:
la source
%@
spécificateur de format enverra le-description
message à l'objet récepteur correspondant. Vous pouvez faire votre dernier travail en ligne dans le même esprit en écrivant:NSString *myNSNumber2 = [[NSNumber numberWithFloat:-34512.23f] description];
. Pour autant que je peux dire,NSNumber
« sdescription
et lesstringValue
méthodes font la même chose.Dans Swift, vous pouvez faire comme ça
la source
Dans Swift 3.0
Nous pouvons obtenir la valeur numérique dans String.
la source