我对Swift真的很新,抱歉,如果这是一个愚蠢的问题......似乎有很多问题,但没有一个使用最新版本的Alamofire
Alamofire.request(.GET, url)
.responseJSON { response in
let json = JSON(response.data!)
debugPrint(json)
self.delegate?.didReceiveAPIResults(json)
}
代表的didReceiveAPIResults
方法
func didReceiveAPIResults(results: JSON) {
dispatch_async(dispatch_get_main_queue(), {
self.tableData = results["items"].arrayObject!
self.appsTableView!.reloadData()
})
}
这是JSON的回应:
{
"items": [
{
"id": 1,
"name": "Sample 1"
},
{
"id": 2,
"name": "Sample 2"
}
]
}
我希望debugPrint可以打印类似于JSON的东西,但它只打印unknown
如果我自己调试response.data
,它似乎是编码的......
Optional(<7b226461 7461223a 5b7b2269 64223a36 2c226e61 6d6522......
然后我的results["items"].arrayObject!
行出现此错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
答案 0 :(得分:2)
我建议抓住response.data
,而不是抓住response.result.value
。当您执行responseJSON
时,Alamofire会为您执行JSON解析,您可以随意获取此解析对象。
Alamofire.request(.GET, url)
.responseJSON { response in
if let value = response.result.value {
let json = JSON(value)
self.delegate?.didReceiveAPIResults(json)
}
}