NSNumber Code

NSNumber

In einem älteren Artikel bin ich auf die Bedeutung von NSNumber als “Wrapper-Klasse” eingegangen. Dieser Artikel behandelt hingegen grundlegende Aspekte zu NSNumber.

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
floatValue

So 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]];

Durch Benutzung dieser Website erklären Sie sich mit der Verwendung von Cookies einverstanden. Mehr Informationen

Die Verwendung von Cookies dient dazu, Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf diese Website zu analysieren. Außerdem werden Informationen zur Nutzung dieser Webseite an Partner für soziale Medien, Werbung und Analysen weitergegeben.

Schließen