Sobes.tech
Junior — Middle

El tudnád magyarázni, mit jelent az @escaping megjegyzés a Swiftben?

sobes.tech MI

Válasz az MI-től

A @escaping megjegyzés Swiftben arra szolgál, hogy jelezze, hogy egy függvényhez átadott zár (closure) később, a függvény befejezése után is meghívható. Ez fontos, amikor a zárat tárolják és aszinkron módon hívják meg, például hálózati kérés visszahívásokban.

@escaping nélkül a zár nem-escaping (nem-elszabaduló) típusúnak számít, azaz a függvény belsejében kell meghívni, és nem tárolható későbbi hívásra.

Példa:

func fetchData(completion: @escaping () -> Void) {
    DispatchQueue.global().async {
        // Aszinkron munka
        completion() // a zár meghívása a fetchData elhagyása után
    }
}

Itt a completion @escaping-ként van megjelölve, mert aszinkron módon hívódik meg a fetchData elhagyása után.