Więc mam NSArray
„myArray” z NSNumber
si NSString
s. Potrzebuję ich w innym, UIView
więc idę tak:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
details.subjectText = [[myArray objectAtIndex:indexPath.row] objectForKey:@"subject"];
Temat działa. Ale jak mogę z tego NSNumber
wyjść? (I rzeczywiście trzeba je jako ciągi ...) Chciałbym przekonwertować NSString
Spośród NSNumber
tak:
NSString *blah = [NSNumber intValue]
. Ale nie wiem, jak to ustawić w powyższym kodzie ...
objectForKey
. Musisz więc wyodrębnić z tego odpowiednie wartości przed próbą konwersji. Zauważ, że większość typów obiektów Cocoa, w tym NSNumber, można przekonwertować na ciągi, wywołującdescription
metodę (lub używając%@
ciągu formatu).Odpowiedzi:
Próbować:
źródło
%f
ten sposób:[NSString stringWithFormat:@"%f", yourDouble];
Możesz to zrobić za pomocą:
źródło
źródło
lub spróbuj
NSString *string = [NSString stringWithFormat:@"%d", [NSNumber intValue], nil];
źródło
Zabawne jest to, że NSNumber konwertuje automatycznie do łańcucha, jeśli stanie się częścią łańcucha. Myślę, że nie jest to udokumentowane. Spróbuj tych:
Wydrukuje:
Działa na komputerach Mac i iOS
Ten nie działa:
źródło
%@
formatu wyśle-description
wiadomość do odpowiedniego obiektu odbiorcy. Można zrobić ostatnią pracę linii w tym samym duchu, pisząc:NSString *myNSNumber2 = [[NSNumber numberWithFloat:-34512.23f] description];
. O ile mogę powiedzieć,NSNumber
dydaktycznegodescription
istringValue
metod zrobić to samo.W Swift możesz to zrobić
źródło
W Swift 3.0
Możemy uzyskać wartość liczbową w ciągu znaków.
źródło