Alamofire 请求最初返回值,但在通过完成处理程序时被接收为 nil

Posted

技术标签:

【中文标题】Alamofire 请求最初返回值,但在通过完成处理程序时被接收为 nil【英文标题】:Alamofire Request initially returns value but is received as nil when passed through completion handler 【发布时间】:2015-10-09 14:48:52 【问题描述】:

我正在使用 Alamofire 发出一个简单的 GET 请求:

Alamofire.request(.GET, url, headers: User.sharedInstance.httpHeader())
        .responseJSON  request,response,result in
            print(result.value)
            completionHandler(responseObject: result.value as? NSDictionary, error: result.error as? NSError)
        

print(result.value) 这一行打印了预期的 JSON 结果:

▿ Optional((
        
        id = 1;
        name = "Texas Dropshop";
    ,
        
        id = 2;
        name = "Closepin Landromat";
    
))
  ▿ Some : 2 elements
    ▿ [0] : 2 elements
      ▿ [0] : 2 elements
        - .0 : id
      ▿ [1] : 2 elements
        - .0 : name
        - .1 : Texas Dropshop
    ▿ [1] : 2 elements
      ▿ [0] : 2 elements
        - .0 : id  ... 
      ▿ [1] : 2 elements
        - .0 : name  ... 
        - .1 : Closepin Landromat

但是当在完成处理程序的方法中接收到时:

 GetDefaultUserDropshop.execute () (responseObject, error) -> () in
            print("responseObject = \(responseObject); error = \(error)")
        

responseObject 的值为 nil。我假设这与选角有关:

responseObject: result.value as? NSDictionary

但是当我正在过渡到 swift 时,我有点迷失如何解决它。

感谢您的帮助!

【问题讨论】:

你的响应是一个数组,而不是一个字典 【参考方案1】:

响应是一个数组,而不是字典

【讨论】:

以上是关于Alamofire 请求最初返回值,但在通过完成处理程序时被接收为 nil的主要内容,如果未能解决你的问题,请参考以下文章

为全局使用嵌套 Alamofire 回调或返回值

通过 Alamofire,想获取数据并将其插入 TableView,但在完成插入之前,TableView 已加载

401 alamofire 获取带有标头的请求

将带有完成处理程序的 Firebase IdToken 添加到每个 AlamoFire 请求

请求 REST POST API 在 Postman 中工作,但在 Alamofire 中不起作用

当 Alamofire 请求通过身份验证时,我应该如何注销?