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,想获取数据并将其插入 TableView,但在完成插入之前,TableView 已加载
将带有完成处理程序的 Firebase IdToken 添加到每个 AlamoFire 请求