Sobes.tech
Junior — Middle

Kun je uitleggen wat de annotatie @escaping betekent in Swift?

sobes.tech AI

Antwoord van AI

De annotatie @escaping in Swift wordt gebruikt om aan te geven dat een afsluiting (closure) die aan een functie wordt doorgegeven, kan worden aangeroepen nadat de functie is voltooid. Dit is belangrijk wanneer de afsluiting wordt opgeslagen en asynchroon wordt aangeroepen, bijvoorbeeld in callbacks van netwerkverzoeken.

Zonder @escaping wordt de afsluiting beschouwd als niet-escaping, dat wil zeggen dat deze binnen de body van de functie moet worden aangeroepen en niet kan worden opgeslagen voor latere oproep.

Voorbeeld:

func fetchData(completion: @escaping () -> Void) {
    DispatchQueue.global().async {
        // Asynchrone taak
        completion() // oproep van de afsluiting na het verlaten van fetchData
    }
}

Hier is completion gemarkeerd als @escaping omdat het asynchroon wordt aangeroepen na het verlaten van fetchData.