Ich bin neu bei Swift und ich habe einige Probleme. Ich versuche, einen Wert von meiner Anfrage zu erhalten. Ich kann es als Schließung drucken, aber ich möchte als Zeichenfolge auf einem VC erhalten und damit arbeiten, aber auf Funktion Login. Ich kann nicht herausfinden, wie ich von einer Schließung zurückkehren kann.swift 3 Aufruf Funktion mit Abschluss Schließung im Gegenzug
Funktion mit Verschluss:
class Json {
var loginToken = ""
public func login(userName: String, password: String) -> (Any){
let loginrequest = JsonRequests.loginRequest(userName: userName, password: password)
return makeWebServiceCall(urlAddress: URL, requestMethod: .post, params: loginrequest, completion: { (JSON : Any) in
//let jsons = JSON
print("\(JSON)")
})
}
private func makeWebServiceCall (urlAddress: String, requestMethod: HTTPMethod, params:[String:Any], completion: @escaping (_ JSON : Any) ->()) {
Alamofire.request(urlAddress, method: requestMethod, parameters: params, encoding: JSONEncoding.default).responseJSON { response in
switch response.result {
case .success(let data):
if let jsonData = response.result.value {
completion(jsonData)
}
case .failure(let error):
if let data = response.data {
let json = String(data: data, encoding: String.Encoding.utf8)
completion("Failure Response: \(json)")
}
Aufruf Funktion auf VC:
let retur = Json()
let rezultatas = retur.login(userName: "root", password: "admin01")
print(rezultatas)
Sie können nicht von einer Schließung zurückkehren. – ebby94
Siehe meine Antwort auf Ihre vorherige Frage hier: http://Stackoverflow.com/a/41889841/4063602 – pbodsk
Warum möchten Sie Wert von Login-Methode zurückgeben? –