Usando o padrão Singleton com dispatch_once em Swift
Olá a todos! Comecei a estudar Swift recentemente e estou tentando implementar o padrão Singleton para uma classe que gerenciará as configurações do aplicativo. Em Objective-C, eu costumava usar `dispatch_once` para garantir que a inicialização ocorresse apenas uma vez de forma thread-safe. Aqui está um exemplo de como eu fazia antes:
```objc
+ (instancetype)sharedInstance {
static MyClass *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[MyClass alloc] init];
});
return sharedInstance;
}
```
Em Swift, vejo muitos exemplos na internet, mas eles frequentemente usam abordagens diferentes: constantes globais, `private init`, structs com `static let`. Fico confuso porque `dispatch_once` no Swift 3+ está marcado como deprecated. Como criar um Singleton corretamente e com segurança no Swift moderno? Preciso me preocupar com thread safety? E por que a Apple recomenda abandonar o `dispatch_once` em favor de outros mecanismos?
Exemplo
No answers yet.
Faça login para deixar uma resposta
Blogs