Sobes.tech
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)
        }
    }
}