Swift 2: Throw from closure - schnell, try-catch

Ich upgrade meinen Code zu Swift 2 mit Fehlerbehandlung mit try-catch. Ich habe mit Schließung (NSURLSession) stecken, kann ich nicht drinnen werfen.

Normalerweise verwende ich einen solchen Code:

let request = NSURLRequest()

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
throw(ErrorType) // here some errortype enum
}
}

Aber ich erhalte den Fehler: "DataTaskWithRequest kann nicht mit einer Argumentliste vom Typ ... aufgerufen werden." Wie kann ich von der Schließung werfen?

Antworten:

0 für die Antwort № 1

Sie können nicht in eine Schließung werfen, da die Schließung später aufgerufen werden kann, wenn die Funktion bereits ausgeführt wurde.

In Ihrem Beispiel wird der Abschluss asynchron aufgerufen, nachdem der URLRequest eine Antwort erhalten hat. Zu diesem Zeitpunkt wird die aufrufende Funktion bereits ausgeführt.


Speisekarte