AlamoFire request() 仅在 viewDidLoad() 中工作
Posted
技术标签:
【中文标题】AlamoFire request() 仅在 viewDidLoad() 中工作【英文标题】:AlamoFire request() only working in viewDidLoad() 【发布时间】:2015-07-22 06:03:07 【问题描述】:谁能解释为什么我对带有以下 AlamoFire 请求的 URL 的请求仅在我的 viewDidLoad() 方法中有效?
request(.GET, URLString: "https://mySecureUrl")
.responseJSON (_, _, json, error) in
let jsonEntries = JSON(json!)
我已将 AlamoFire swift 文件添加到我的项目中。每当我将上面的代码行添加到任何方法时,我都不会得到下面的代码
let jsonEntries = JSON(json!)
程序完全跳过了 responseJSON。任何想法为什么?
【问题讨论】:
【参考方案1】:如果你使用 Swift2,你必须使用他的 github 上的 Alamofire swift2 分支:https://github.com/Alamofire/Alamofire/tree/swift-2.0
正如 Alamofire 自述文件中所述,json 响应被封装在 result 参数中,如下所示:
Alamofire.request(.GET, "http://httpbin.org/get")
.responseJSON _, _, result in
print("Response JSON: \(result.value)")
【讨论】:
以上是关于AlamoFire request() 仅在 viewDidLoad() 中工作的主要内容,如果未能解决你的问题,请参考以下文章
Alamofire completionHandler 更新 ui 仅在函数完成时有效