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 从 API 获取响应

在添加完成块之前触发 Alamofire 网络请求?

Alamofire completionHandler 更新 ui 仅在函数完成时有效

Alamofire 仅在运行归档应用程序时崩溃

Alamofire 上传仅在 iphone 6s plus 上崩溃

var 请求:Alamofire.Request?使用未声明类型的 Alamofire