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() 中工作的主要内容,如果未能解决你的问题,请参考以下文章