Sobes.tech
Junior — Middle

¿Puedes explicar qué significa la anotación @escaping en Swift?

sobes.tech AI

Respuesta de la IA

La anotación @escaping en Swift se usa para indicar que un cierre (closure) pasado a una función puede ser llamado después de que la función haya terminado. Esto es importante cuando el cierre se guarda y se llama de manera asíncrona, por ejemplo, en callbacks de solicitudes de red.

Sin @escaping, el cierre se considera no escapable (non-escaping), es decir, debe ser llamado dentro del cuerpo de la función y no puede guardarse para ser llamado más tarde.

Ejemplo:

func fetchData(completion: @escaping () -> Void) {
    DispatchQueue.global().async {
        // Trabajo asíncrono
        completion() // llamada al cierre después de salir de fetchData
    }
}

Aquí, completion está marcado como @escaping porque se llama de manera asíncrona después de salir de fetchData.