Sobes.tech
Junior — Middle

Kas saaksite selgitada, mida tähendab @escaping märge Swiftis?

sobes.tech AI

Vastus AI-lt

Swiftis kasutatakse märget @escaping, et näidata, et sulg (closure), mis antakse funktsioonile, võib olla kutsutud pärast selle funktsiooni lõppu. See on oluline, kui sulg salvestatakse ja kutsutakse asünkroonselt, näiteks võrgupäringute tagasikutsumistes.

Ilma @escaping peetakse sulgu mitte-escape'iks (mitte-kiirguvaks), see tähendab, et see peab olema kutsutud funktsiooni kehas ja seda ei saa salvestada hilisemaks kutsumiseks.

Näide:

func fetchData(completion: @escaping () -> Void) {
    DispatchQueue.global().async {
        // Asünkroonne töö
        completion() // sulgu kutsumine pärast fetchData väljumist
    }
}

Siin on completion märgitud kui @escaping, kuna see kutsutakse asünkroonselt pärast fetchData väljumist.