Home » Trucos » Truco de Swift: Enviar bloques (Closures) como parámetros a Objective-C
Trucos de Swift

Truco de Swift: Enviar bloques (Closures) como parámetros a Objective-C

Una de las principales ventajas de Swift es su posibilidad de interactuar con Cocoa y Objective-C, aunque debido a la estructura de cada lenguaje hay que tener cuidado de cómo hacemos llamadas entre uno y otro lenguaje.

Closures, bloques en Swift

Un bloque es un trozo de código que actúa como si fuera una variable, o según podamos entender, una variable o constante calculada. En vez de tener un valor fijo (a = 23, st = “Hola”) incluye una función que ejecuta una serie de líneas de código y que pueda devolver un valor final tras su ejecución.

Vamos a suponer que tenemos el siguiente código en Swift para crear un bloque de llamada:

Lo que tenemos es una variable BlockS de tipo cadena (String) que ejecutará una función que ya tenemos creada en otra parte del código (Construir_Cadena_Fecha) que devolverá una cadena con el día y la hora de ese momento.

Si os fijáis, las cadenas no están inferidas, sino que son implícitas y con una ! al final. Esto indica que son variables de tipo opcional para que puedan transferirse como tipos válidos al código de Objective-C.

Es lo que se llama: variables opcionales implícitas desenlazadas o implicity unwrapped optionals. Es muy importante tener esto en cuenta, pues si no definimos el tipo opcional en el bloque, tanto en la variable que contendrá el propio bloque como en el posible parámetro del mismo, el compilador dará error porque en caso que dicho bloque no devolvería resultado, Swift no sabría cómo tratarlo.

Acerca de Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Otras recomendaciones

Stocks Apps

Cómo se borran las apps preinstaladas en iOS 10 (o no)

Todos lo hemos querido alguna vez: borrar algunas de las apps preinstaladas en iOS. En iOS 10 se podrá, pero no exactamente. Te explicamos qué hace el sistema para quitarlas y el proceso de restauración posterior (si queremos recuperarlas). Igualmente, te decimos cuáles son las que puedes quitar y la explicación técnica del método elegido por Apple.