在Swift中按顺序执行任务

时间:2018-05-09 15:45:19

标签: ios swift alamofire swifty-json

我试图验证登录并相应地从我的函数返回一个布尔值,但是我的return语句在web服务函数完成之前一直执行,即使我使用异步方法。我正在使用Alamofire和SwiftyJSON。

我在下面附上我的代码。任何帮助将不胜感激!

感谢。

NaNs

日志输出:

第二次假 真正
首先是真的

1 个答案:

答案 0 :(得分:0)

您需要完成,Alamfire异步运行,不需要全局队列

func checkUs (name: String, password: String,completion: @escaping (_ status: Bool,_ err:Error?) -> Void) {

        bool authen = false

        let jsonDic : [String: String] = ["email": name, "pass": password]
        Alamofire.request("enter URL here", method: .post, parameters: jsonDic, encoding: JSONEncoding.default, headers: nil).responseJSON { (response) in
                switch(response.result) {
                case .success(let sentJSON):
                    let gotJSON = JSON (sentJSON)
                    print (gotJSON[0]["status"].boolValue)
                    authen = gotJSON[0]["status"].boolValue
                     completion(authen,nil)
                case .failure(let err):
                    print(err)
                    completion(authen,err)
                }

            print ("First ", authen)

        }
        print ("Second", authen)

     }

//

像这样称呼它

self.checkUs(name: "endedName", password: "sendedPassword") { (status, error) in

    if let err = error {


    }
    else
    {

    }
}