Programmieren mit Swift - Für macOS und iOS
Programmieren mit Swift - Für macOS und iOS
Neues für NSNumber

Obwohl es sich auch bei den Typen NSString um eine Objective-C-Klasse handelt, werden neue Zeichenketten selten mit init und alloc angelegt, wenn keine zusätzliche Formatierung benötigt wird. Stattdessen bedient man sich oftmals eines sogenannten Convenience Allocators, mit dem ein Text ohne großen Aufwand direkt einer Variablen zugewiesen werden kann. Da fast keine Anwendung ohne Zeichenketten auskommt, ist dies während der Entwicklung eine große Erleichterung und spart eine Menge mühevoller Schreibarbeit.
NSString *message = @"Datenübetragung abgeschlossen";
In der Vergangenheit war NSString leider eine der wenigen Klassen, die diesen Luxus bereitstellte, aber im modernen Objective-C finden wir ähnliche Convenience Allocatoren auch bei einigen anderen Typen. Geht einem Zahlen- oder boolschem Wert ein @-Zeichen voraus, erkennt der Compiler dies jetzt direkt als NSNumber-Objekt.
// Alte Schreibweise:
NSNumber *i1 = [NSNumber numberWithInt:1];
NSNumber *d1 = [NSNumber numberWithDouble:2.75];
NSNumber *b1 = [NSNumber numberWithBool:YES];

// Neue Schreibweise:
NSNumber *i2 = @1;
NSNumber *d2 = @2.75;
NSNumber *b2 = @YES;
Möchte man ein NSNumber-Object später in einen einfachen Datentypen umwandeln, ist dies weiterhin ohne Probleme möglich.
int i3 = [i2 intValue];
double d3 = [d2 doubleValue];
BOOL b3 = [b2 boolValue];