Swift 如何等待Alamofire完成联网?
我想等到Alamofire的联网完成 然而,使用目前的代码,它不会等待联网完成,然后通过login()函数移动到下一页 你能告诉我怎么等到阿拉莫菲的联网完成吗Swift 如何等待Alamofire完成联网?,swift,networking,alamofire,Swift,Networking,Alamofire,我想等到Alamofire的联网完成 然而,使用目前的代码,它不会等待联网完成,然后通过login()函数移动到下一页 你能告诉我怎么等到阿拉莫菲的联网完成吗 @IBAction func signInWithTwitter(sender: UIButton) { Twitter.sharedInstance().logInWithCompletion { (session: TWTRSession!, error: NSError!) -> Void in if
@IBAction func signInWithTwitter(sender: UIButton) {
Twitter.sharedInstance().logInWithCompletion { (session: TWTRSession!, error: NSError!) -> Void in
if session != nil {
let parameters = [
"tw_id":session.userID,
"tw_name" :session.userName,
"tw_token":session.authToken
]
Alamofire.request(.POST, self.uri.usersApi + "/tw_login", parameters: parameters, encoding: .JSON)
.responseJSON { (request, response, data, error) in
var jsonObj = JSON(data!)
var uid = jsonObj["user_id"].int
self.defaults.setObject(uid, forKey: "uid")
}
self.login()
} else {
println(error.localizedDescription)
}
}
}
尝试将登录方法放入
Alamofire
块中
Alamofire.request(.POST, self.uri.usersApi + "/tw_login", parameters: parameters, encoding: .JSON)
.responseJSON { (request, response, data, error) in
var jsonObj = JSON(data!)
var uid = jsonObj["user_id"].int
self.defaults.setObject(uid, forKey: "uid")
self.login()
}
不要等到请求完成,而是将依赖于请求的任何内容放入
响应
闭包中,并让它异步运行,如下面的iAshish所示。