Junior — Middle
Können Sie erklären, was die Annotation @escaping in Swift bedeutet?
sobes.tech KI
Antwort von AI
Die Annotation @escaping in Swift wird verwendet, um anzugeben, dass eine Closure, die an eine Funktion übergeben wird, nach Abschluss der Funktion aufgerufen werden kann. Dies ist wichtig, wenn die Closure gespeichert und asynchron aufgerufen wird, zum Beispiel in Callback-Funktionen von Netzwerk-Anfragen.
Ohne @escaping gilt die Closure als nicht entkommend (non-escaping), das heißt, sie muss innerhalb des Funktionskörpers aufgerufen werden und kann nicht für einen späteren Aufruf gespeichert werden.
Beispiel:
func fetchData(completion: @escaping () -> Void) {
DispatchQueue.global().async {
// Asynchrone Arbeit
completion() // Aufruf der Closure nach Verlassen von fetchData
}
}
Hier ist completion als @escaping markiert, weil es asynchron nach Verlassen von fetchData aufgerufen wird.