Junior — Middle
Tem experiência na procura e resolução de fugas de memória ou recursos nos seus projetos?
sobes.tech IA
Resposta da IA
Sim, em projetos de iOS, já enfrentei fugas de memória, geralmente relacionadas a referências cíclicas entre objetos, por exemplo, entre closures e classes. Para encontrar essas fugas, utilizei as ferramentas Instruments do Xcode com os perfis Leaks e Allocations.
Corrigi as fugas usando referências fracas (weak) ou não possuidoras (unowned) onde necessário para quebrar os ciclos de retenção. Também verifiquei a liberação correta de recursos e a inscrição/desinscrição em notificações.
Exemplo de referência fraca em uma closure:
class ViewController: UIViewController {
var closure: (() -> Void)?
func setupClosure() {
closure = { [weak self] in
guard let self = self else { return }
print(self.view)
}
}
}