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.