Junior — Middle
Můžete vysvětlit, co znamená anotace @escaping ve Swiftu?
sobes.tech AI
Odpověď od AI
Poznámka @escaping ve Swiftu se používá k označení, že uzávěr (closure), předaný funkci, může být volán po dokončení samotné funkce. To je důležité, když je uzávěr uložen a volán asynchronně, například v callbackech síťových požadavků.
Bez @escaping je uzávěr považován za ne-escape (neunikající), což znamená, že musí být volán uvnitř těla funkce a nemůže být uložen pro pozdější volání.
Příklad:
func fetchData(completion: @escaping () -> Void) {
DispatchQueue.global().async {
// Asynchronní práce
completion() // volání uzávěru po opuštění fetchData
}
}
Zde je completion označen jako @escaping, protože je volán asynchronně po opuštění fetchData.