Ich aktualisierte mein Projekt von Swift 2.2 zu Swift 3.0. Dann, weil viele verschiedene Fehler ich auf Swift 2.3 herabgestuft. Jetzt habe ich diesen Fehler, den ich nicht lösen kann. Weiß jemand, warum ich diesen Fehler bekomme?"falls case" - Variable Bindung in einer Bedingung erfordert einen Initialisierer
Variable binding in a condition requires an initializer
Dies ist die Funktion Ich verwende:
func credentials(values: [String: String], callback: Result<Credentials> ->()) {
guard
let code = values["code"]
else {
let data = try! NSJSONSerialization.dataWithJSONObject(values, options: [])
let string = String(data: data, encoding: NSUTF8StringEncoding)
return callback(.Failure(error: AuthenticationError(string: string)))
}
let clientId = self.clientId
Authentication(clientId: clientId, url: url)
.tokenExchange(withCode: code, codeVerifier: verifier, redirectURI: redirectURL.absoluteString!)
.start { result in
// error is in if-case below:
if case .Failure(let cause as AuthenticationError) = result, cause.description == "Unauthorized"{
let error = WebAuthError.PKCENotAllowed("Please go to 'https://manage.auth0.com/#/applications/\(clientId)/settings' and set 'Token Endpoint Authentication Method' to 'None' to enable PKCE.")
callback(Result.Failure(error: error))
} else {
callback(result)
}
}
}
Der Fehler bedeutet, dass der zugehörige Wert 'cause' nicht als gebundene Variable verwendet werden kann. Verwenden Sie "wenn Fall lassen" – vadian
@ Vadian danke für Ihre Hilfe. Ich benutze bereits "Let", wenn ich eine 'cause'-Variable erstelle ... und wenn ich' let' neben 'if case' setze, bleibt der Fehler gleich ... vielleicht habe ich Ihren Punkt nicht bekommen – guijob
Dies ist mein erstes schnelles Projekt, mit dem ich nicht vertraut bin – guijob