Avatar ·

Uso del patrón Singleton con dispatch_once en Swift

¡Hola a todos! Acabo de empezar a aprender Swift y estoy intentando implementar el patrón Singleton para una clase que gestionará la configuración de la aplicación. En Objective-C solía usar `dispatch_once` para garantizar que la inicialización ocurra solo una vez de manera thread-safe. Aquí hay un ejemplo de cómo lo hacía antes: ```objc + (instancetype)sharedInstance { static MyClass *sharedInstance = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ sharedInstance = [[MyClass alloc] init]; }); return sharedInstance; } ``` En Swift veo muchos ejemplos en internet, pero a menudo usan enfoques diferentes: constantes globales, `private init`, estructuras con `static let`. Me confunde que `dispatch_once` en Swift 3+ esté marcado como deprecated. ¿Cómo crear un Singleton correctamente y de forma segura en Swift moderno? ¿Debo preocuparme por la thread-safety? ¿Y por qué Apple recomienda abandonar `dispatch_once` en favor de otros mecanismos? Ejemplo