Wir können Block wie folgt in Objective-C deklarieren.
typedef void (^CompletionBlock) (NSString* completionReason);
Ich versuche dies schnell zu tun, es gibt Fehler.
func completionFunction(NSString* completionReason){ }
typealias CompletionBlock = completionFunction
Fehler: Verwendung der nicht deklarierten 'CompletionFunction'
Definition:
var completion: CompletionBlock = { }
Wie macht man das?
Aktualisieren:
Gemäß der Antwort von @ jtbandes kann ich einen Abschluss mit mehreren Argumenten erstellen
typealias CompletionBlock = ( completionName : NSString, flag : Int) -> ()
var
(dhvar completion: CompletionBlock = {....}
mit mehreren Argumenten? Danke.Antworten:
Die Syntax für Funktionstypen lautet
(in) -> out
.Beachten Sie, dass die Klammern um den Eingabetyp nur ab Swift 3+ erforderlich sind.
quelle
typealias CompletionBlock = ( completionName : NSString, flag : Int) -> ()
reason
" vom Methodenkörper "println(reason)
"Hier ist ein großartiger Blog über die schnelle Schließung.
Hier sind einige Beispiele:
Als Variable:
Als optionale Variable:
Als Typalias:
quelle