Sobes.tech
Junior — Middle

Quel rôle joue le mot-clé self dans les closures?

sobes.tech IA

Réponse de l'IA

В Swift ключевое слово self внутри замыканий используется для явного указания на текущий экземпляр класса или структуры, особенно когда замыкание захватывает self.

Это важно, чтобы избежать циклов сильных ссылок (retain cycles), которые могут привести к утечкам памяти. В замыканиях, которые захватывают self, часто используют захват self как слабую ([weak self]) или безусловно слабую ([unowned self]) ссылку.

Пример:

class ViewController {
    var name = "Main"

    func doSomething() {
        DispatchQueue.main.asyncAfter(deadline: .now() + 1) { [weak self] in
            guard let self = self else { return }
            print(self.name) // здесь self используется явно
        }
    }
}

Здесь self внутри замыкания указывает на текущий объект, и его использование помогает избежать путаницы с локальными переменными и управлять жизненным циклом объекта.