2016-11-04 1 views
-2

ich diesen Abschluss-Handler in Swift als Variable ergänzen sollen:Completion-Handler als var in Swift von Objective-C

-test:(void(^)(id result, NSError* error))completion; 

Was muss dies aussehen in Swift? Ist in diesem Fall id == AnyObject und NSError == Fehler?

+0

Wenn Sie diese Methode bereits in ObjectiveC haben, können Sie sehen, wie sie in Swift mit dem Xcode "Generated Interface" angezeigt wird. –

+0

danke, es ist ein bisschen Hilfe mir, aber jetzt xCode möchte diese Wettbewerbs-Handler zu korrigieren, wenn ich eine Variable erstellen, in Swift sieht es so aus: (completionBlock Abschluss: (@escaping (Any ?, Fehler?) -> Swift.Void)!) –

+0

Was ist ein "Wettbewerbs-Handler"? – gnasher729

Antwort

0

id als Any in Swift importiert, NSError * wird Error? in Swift 3 so Ihre Abschluss-Handler wie dies in Swift sollte lauten:

func completionHandler(result: Any, error: Error?) { 
    // Do something 
} 

obj.test(completionHandler) 

Oder wenn Sie es inline definieren möchten:

let handler = { (result: Any, error: Error?) -> Void in 
    // Do something 
} 
obj.test(handler) 
Verwandte Themen