Sobes.tech
Junior — Middle

Aké kroky je potrebné vykonať na použitie atribútu @escaping s uzáverom v definícii funkcie?

sobes.tech AI

Odpoveď od AI

V Swift-u sa atributom @escaping označavamo zatvory (closures), ktoré sa ukladajú a volajú po ukončení funkcie, v ktorej boli odovzdané. Pre použitie @escaping je potrebné:

  1. V deklarácii funkcie pred parametrom zatvory uviesť @escaping.
  2. To znamená, že zatvory môžu byť volané neskôr, napríklad asynchrónne.

Príklad:

func fetchData(completion: @escaping () -> Void) {
    DispatchQueue.global().async {
        // Vykonávame asynchrónnu úlohu
        completion() // voláme zatvory neskôr
    }
}

Bez @escaping kompilátor nepovolí uložiť zatvory na neskoršie volanie po opustení funkcie.