Nous pouvons déclarer le bloc comme ci-dessous dans Objective-C.
typedef void (^CompletionBlock) (NSString* completionReason);
J'essaye de faire ça rapidement, ça donne une erreur.
func completionFunction(NSString* completionReason){ }
typealias CompletionBlock = completionFunction
Erreur: utilisation de 'completionFunction' non déclarée
Définition:
var completion: CompletionBlock = { }
Comment faire cela?
Mettre à jour:
Selon la réponse de @ jtbandes, je peux créer une clôture avec plusieurs arguments comme
typealias CompletionBlock = ( completionName : NSString, flag : Int) -> ()
var
(c'est-à-dire envar completion: CompletionBlock = {....}
utilisant plusieurs arguments? Merci.Réponses:
La syntaxe des types de fonction est
(in) -> out
.Notez que les parenthèses autour du type d'entrée ne sont requises qu'à partir de Swift 3+.
la source
typealias CompletionBlock = ( completionName : NSString, flag : Int) -> ()
reason
" du corps de la méthode "println(reason)
"Voici un blog génial sur la fermeture rapide.
Voici quelques exemples:
En tant que variable:
En tant que variable facultative:
En tant qu'alias de type:
la source