【发布时间】:2015-11-17 09:59:03
【问题描述】:
我想等到 Alamofire 联网完成。
但是,使用当前代码,它不会等待网络完成,然后通过 login() 函数转到下一页。
你能告诉我如何等到 Alamofire 的 netwokirng 完成吗?
@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)
}
}
}
【问题讨论】:
-
不要等到请求完成,而是将依赖于请求的任何内容放入
response闭包中并让它异步运行,如下面的 iAshish 所示。
标签: swift networking alamofire