Sobes.tech
Junior — Middle

Pouvez-vous expliquer ce que signifie l'annotation @escaping en Swift?

sobes.tech IA

Réponse de l'IA

L'annotation @escaping en Swift est utilisée pour indiquer qu'une fermeture (closure) passée à une fonction peut être appelée après la fin de cette fonction. C'est important lorsque la fermeture est stockée et appelée de manière asynchrone, par exemple dans des rappels de requêtes réseau.

Sans @escaping, la fermeture est considérée comme non escapante (non-escaping), c'est-à-dire qu'elle doit être appelée à l'intérieur du corps de la fonction et ne peut pas être stockée pour un appel ultérieur.

Exemple :

func fetchData(completion: @escaping () -> Void) {
    DispatchQueue.global().async {
        // Travail asynchrone
        completion() // appel de la fermeture après la sortie de fetchData
    }
}

Ici, completion est marqué comme @escaping car il est appelé de manière asynchrone après la sortie de fetchData.