Ich habe zuvor das folgende Singleton-Muster verwendet:
%Vor%Als die neue Xcode-Beta mit Swift 1.2 veröffentlicht wurde, wollte ich die neuen Eigenschaften und Methoden der statischen Klasse ausprobieren. Also habe ich etwas Ähnliches versucht:
%Vor%Wenn Sie den Debugger betrachten, während Sie diesen verwenden, scheint es so, als würden viele verschachtelte Instanzen der Singleton-Klasse durch die Klassenkonstante erzeugt:
Aber durch die Zuordnungen scheint es, dass nur eine Instanz erstellt wird. Ich denke, das bedeutet, dass es richtig funktioniert, aber ich sehe nicht das gleiche Verhalten mit dem ersten Muster.
Was hier passiert, ist, dass LLDB Ihnen die statischen Daten anzeigt, als wären es Instanzdaten.
Da es sich um statische Daten handelt, existiert es nicht "in der Instanz" so wie normale Instanzdaten, was dazu führt, dass LLDB Speicher liest, den es nicht lesen sollte, und es Ihnen so präsentiert, als wäre es gültig.
Im Allgemeinen sollte der Debugger keine statischen Daten innerhalb von Instanzen anzeigen (vergleiche das äquivalente C ++ und die Art, wie LLDB es darstellt).
Sie können in der schnellen 1,2-Tonnen-Implementierung nachprüfen, ob Ihr Code korrekt ist richtig. Es ist nicht notwendig Singleton zu deklarieren.
static let SharedInstance = Singleton ()
Tags und Links swift