Solo tenía curiosidad por saber cómo abordaría esto. Si tuviera una función y quisiera que sucediera algo cuando se ejecutara por completo, ¿cómo agregaría esto a la función? Gracias
function
swift
completionhandler
traw1233
fuente
fuente
Respuestas:
Supongamos que tiene una función de descarga para descargar un archivo de la red y desea recibir una notificación cuando finalice la tarea de descarga.
Espero eso ayude.
fuente
Tuve problemas para entender las respuestas, así que supongo que cualquier otro principiante como yo podría tener el mismo problema que yo.
Mi solución hace lo mismo que la respuesta principal, pero espero que sea un poco más clara y fácil de entender para principiantes o personas que simplemente tienen problemas de comprensión en general.
Para crear una función con un controlador de finalización
para usar la función
Tu salida será
¡Espero que esto ayude!
fuente
Ejemplo simple de Swift 4.0:
Cómo usarlo:
fuente
Podemos utilizar cierres para este propósito. Prueba lo siguiente
En algún momento podemos llamar a esta función como se indica a continuación.
Consulte el siguiente enlace para obtener más información sobre cierres .
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html
fuente
Swift 5.0 +, simple y corto
ejemplo:
Estilo 1
Estilo 2
Utilizar:
Salida
fuente
Estoy un poco confundido acerca de los controladores de finalización personalizados. En tu ejemplo:
Supongamos que tiene una función de descarga para descargar un archivo de la red y desea recibir una notificación cuando finalice la tarea de descarga.
Su
// download code
todavía se corrió de forma asíncrona. ¿Por qué no el código de ir directamente a tulet flag = true
ycompletion Handler(success: flag)
sin esperar a que su código de descarga para ser terminado?fuente
Además de lo anterior: se puede utilizar un cierre posterior.
fuente