In diesem Artikel geht es um grundlegende Aspekte zu NSNumber, wie beispielsweise den Zugriff auf den in einem NSNumber-Objekt enthaltenen Wert. NSNumber erlaubt es elementare Datentypen – wie int oder double – in Form eines Objekts zu “speichern”. Dafür beinhaltet die NSNumber-Klasse eine Reihe von Klassenmethoden, mit denen NSNumber-Objekte initialisiert werden können. Die zu verwendende Klassenmethode ist dabei vom Typ abhängig, der in NSNumber “gespeichert” werden soll. Nachfolgend drei Beispiele für die Datentypen int, double und float:
NSNumber *myIntValue = [NSNumber numberWithInt: 100];
NSNumber *myDoubleValue = [NSNumber numberWithDouble: 10.24];
NSNumber *myFloatValue = [NSNumber numberWithFloat: 40.72];Es existieren verschiedene Instanzmethoden, die den Zugriff auf die im NSNumber-Objekt enthaltenen Werte ermöglichen. Für die drei aufgeführten Beispiele wären das:
intValue
doubleValue
floatValueSo könnte man beispielswiese den Wert 100 vom Typ int aus dem obigen Beispiel wie folgt in der Konsole – mittels eines NSLog – ausgeben lassen:
int value;
value = [myIntValue intValue];
NSLog(@"value = %d", value);oder für einen Wert vom Typ double:
double value;
value = [myDoubleValue doubleValue];
NSLog(@"value = %f", value);Für die Ausgabe einer Zeichenkette (String) ist die Methode stringValue vorgesehen. Angenommen es soll ein Wert (vom Typ double) ausgegeben werden, der von einem NSNumber-Objekt gehalten wird:
NSNumber *myDoubleValue = [NSNumber numberWithDouble: 100];Die Ausgabe als String ließe sich dann wie folgt bewerkstelligen:
NSString *myString = [myDoubleValue stringValue];Nun wäre beispielsweise eine Anzeige dieses Strings in einem UITextField möglich:
[myTextField setText:myString];oder kürzer:
[myTextField setText:[myDoubleValue stringValue]];