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
Princípios SOLID em Java: teoria e prática para código limpo
Rust invade o mundo embedded: por que C não é mais o rei
Isolamento sem dor: Mock e Fixtures em testes Go
Dia típico de um desenvolvedor TypeScript: código, bugs e code review