2014-07-03 16 views
7

Ich habe viele Stunden lang versucht, die Lösung für dieses Schließungsproblem in swift zu finden. Ich habe viele Ressourcen gefunden, um die Schließungen zu erklären, aber aus irgendeinem Grund scheint mir das nicht funktionieren zu können.Completion Handler in Swift

Dies ist die Objective-C-Code ich in schnellen zu konvertieren Ich versuche:

[direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) { 
      NSLog(@"%@",[response description]); 
      NSLog(@"%@",[error description]); 

      }]; 

und die rasche ich versuche aber nicht funktioniert:

directions.calculateDirectionsWithCompletionHandler(response: MKDirectionsResponse?, error: NSError?) { 
    println(response.description) 
    println(error.description) 
} 

Richtungen ist ein MKDirections Objekt.

Danke!

Antwort

10

Versuchen

directions.calculateDirectionsWithCompletionHandler ({ 
(response: MKDirectionsResponse?, error: NSError?) in 
     println(response?.description) 
     println(error?.description) 
    }) 
+1

Dieser Dank so viel gearbeitet! Gott .. Closures .. XD Ich werde als Antwort markieren, wenn es mich lässt. Danke noch einmal! –

+0

Großartig! Kein Problem. – Adithya

+0

oder kurz: 'directions.calculateDirectionsWithCompletionHandler ({(Antwort, Fehler) in/* code * /})' – David

1

in Bezug auf die Syntax von Closures in Swift und Überprüfung der MKDirections Klasse Referenz:

enter image description here

es den richtigen Verschluss sieht hier sollte ein MKDirectionHandler sein, die definiert als:

enter image description here

daher die Abschluss Handler sollte wie folgt aussehen:

direction.calculateDirectionsWithCompletionHandler({ (response: MKDirectionsResponse!, error: NSError!) ->() in 
    println(response.description) 
    println(error.description) 
    }) 
+0

Dieser Beitrag wurde mit geringer Qualität getaggt. Trotz Ihres Ansehens fügen Sie bitte weitere Erklärungen hinzu. –

+0

@ Jean-RémyRevy, mein Schade, tut mir leid. – holex

+0

kein Problem :). Das ist in Ordnung :)! –

2

enter image description here

Dies ist die allgemeine Art und Weise ein Block/Schließung wie in Swift aussieht.

wenn Sie nicht über die Parameter verwenden müssen es tun können wie diese

directions.calculateDirectionsWithCompletionHandler ({ 
(_) in 
    // your code here 
    })