Podemos declarar el bloque como se muestra a continuación en Objective-C.
typedef void (^CompletionBlock) (NSString* completionReason);
Estoy tratando de hacer esto rápidamente, da error.
func completionFunction(NSString* completionReason){ }
typealias CompletionBlock = completionFunction
Error: uso de una 'función de finalización' no declarada
Definición :
var completion: CompletionBlock = { }
¿Como hacer esto?
Actualizar:
De acuerdo con la respuesta de @ jtbandes, puedo crear un cierre con múltiples argumentos como
typealias CompletionBlock = ( completionName : NSString, flag : Int) -> ()
var
(es decir,var completion: CompletionBlock = {....}
usando múltiples argumentos? Gracias.Respuestas:
La sintaxis de los tipos de funciones es
(in) -> out
.Tenga en cuenta que los paréntesis alrededor del tipo de entrada solo se requieren a partir de Swift 3+.
fuente
typealias CompletionBlock = ( completionName : NSString, flag : Int) -> ()
reason
" del cuerpo del método "println(reason)
"Aquí hay un blog increíble sobre el cierre rápido.
Aquí hay unos ejemplos:
Como variable:
Como variable opcional:
Como un alias de tipo:
fuente