Sobes.tech
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.