所以我有以下代码
@IBOutlet var jokes_list: UITableView!
var CountCells = 0
var CellsData = [NSArray: NSArray]()
override func viewDidLoad() {
super.viewDidLoad();
Alamofire.request("http://localhost:8080/jokes.php").responseJSON{ response in
debugPrint(response.result.value) // result of response serialization
if let JSON = response.result.value as? [NSArray: NSArray] {
self.CellsData = JSON
self.CountCells = JSON.count
self.jokes_list.reloadData()
}else{
debugPrint("failed")
}
}
// Do any additional setup after loading the view, typically from a nib.
}
我得到了debugPrint(response.result.value)
输出,但我也failed
从else语句得到了a 。
来自的一点输出 debugPrint(response.result.value)
Optional(<__NSArrayI 0x7fc9c6056a00>(
{
added = "2017-01-10 19:07:14";
description = "Ora de religie \U00een scoala. Profesoara: \U2013 Si copii, amintiti-va permanent: cei care vor \U00eenvata pentru note de 9 si 10 vor nimeri \U00een
这是一个很长的输出,所以我想我不能在这里粘贴所有内容,但是问题是为什么我不能CellsData
在代码中将json设置为数组,所以可以使用它来显示列表。
as? [NSArray: NSArray]
绝对不正确,因此强制转换失败,执行else分支。这意味着您期望使用键和值的类型为的字典NSArray
,但是您拥有数组或字典,因此它应该读取as? [[String: Any]]
或类似,具体取决于您未完全提供的响应。
也var CellsData = [NSArray: NSArray]()
必须分别更换。(顺便说一句:请熟悉可可触摸/快速命名约定)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句