In Obj-C
Ich habe den folgenden Ausschnitt in einem Setter namens setTime:(NSDate *)time
Statische Variablen in Setter
static NSDateFormatter *dateFormatter;
if (!dateFormatter) {
dateFormatter = [NSDateFormatter new];
dateFormatter.dateFormat = @"h a";
}
self.title.text = [dateFormatter stringFromDate:time];
Das die dateFormatter
verhindert wird jedes Mal erstellt werden, die Setter genannt.
In Swift meine Setter sieht derzeit wie folgt aus:
var time:NSDate {
didSet {
let dateFormatter:NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "h a"
self.title.text = dateFormatter.stringFromDate(time)
}
}
Gibt es ein Äquivalent davon, wie die statische Variable in der Setter in Swift zu schaffen?
Sie auch eine 'private' global machen und es mit dem Ergebnis eines Verschlusses initialisieren. – zneak
Dies ist in Objective-C nicht die beste Idee. Sie sollten stattdessen einen dispatch_once() - Block verwenden, wenn Sie nach NULL suchen. – mah