Also habe ich ein NSArray
"myArray" mit NSNumber
s und NSString
s. Ich brauche sie in einem anderen, UIView
also gehe ich so:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
details.subjectText = [[myArray objectAtIndex:indexPath.row] objectForKey:@"subject"];
Der subjectText funktioniert. Aber wie kann ich das NSNumber
rausholen? (Ich brauche sie tatsächlich als Zeichenfolgen ...) Ich würde eine NSString
aus einer solchen konvertieren NSNumber
:
NSString *blah = [NSNumber intValue]
. Aber ich weiß nicht, wie ich es im obigen Code einrichten soll ...
objectForKey
. Sie müssen also die entsprechenden Werte daraus extrahieren, bevor Sie versuchen, sie zu konvertieren. Beachten Sie, dass die meisten Cocoa-Objekttypen, einschließlich NSNumber, durch Aufrufen derdescription
Methode (oder Verwendung%@
in einer Formatzeichenfolge) in Zeichenfolgen konvertiert werden können .Antworten:
Versuchen:
quelle
%f
:[NSString stringWithFormat:@"%f", yourDouble];
Sie können es tun mit:
quelle
quelle
oder Versuche
NSString *string = [NSString stringWithFormat:@"%d", [NSNumber intValue], nil];
quelle
Das Lustige ist, dass NSNumber automatisch in einen String konvertiert, wenn dieser Teil eines Strings wird. Ich denke nicht, dass es dokumentiert ist. Probiere diese:
Es wird gedruckt:
Funktioniert sowohl auf Mac als auch auf iOS
Dieser funktioniert nicht:
quelle
%@
Formatbezeichner sendet die-description
Nachricht an das entsprechende Empfängerobjekt. Sie können Ihre letzte Zeile im gleichen Sinne arbeiten lassen, indem Sie Folgendes schreiben :NSString *myNSNumber2 = [[NSNumber numberWithFloat:-34512.23f] description];
. Soweit ich das beurteilen kannNSNumber
, machen sdescription
undstringValue
Methoden dasselbe.In Swift können Sie dies tun
quelle
In Swift 3.0
Wir können den Zahlenwert in String erhalten.
quelle