Avatar ·

Verwendung von dispatch_once zur Erstellung eines Singletons in Swift: Wie macht man es richtig?

Hallo zusammen! Ich habe gerade angefangen, Swift nach Objective-C zu lernen, und habe ein Problem mit der Implementierung des Singleton-Patterns. In Objective-C habe ich dispatch_once verwendet, um sicherzustellen, dass die Initialisierung nur einmal erfolgt, selbst in einer Multithread-Umgebung. Ungefähr so: ``` + (instancetype)sharedInstance { static MyClass *sharedInstance = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ sharedInstance = [[MyClass alloc] init]; }); return sharedInstance; } ``` Jetzt versuche ich, dasselbe in Swift zu machen. Ich habe gelesen, dass es in Swift let und static properties gibt, die standardmäßig threadsicher sind. Aber mir ist nicht ganz klar, wie das funktioniert. Ich habe es so versucht: ``` class MyClass { static var shared: MyClass { d ```