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.