Alamofire json 请求失败



所以我有以下代码

@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)输出,但我也从 else 语句中得到了一个failed

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

这是一个很长的输出,所以我认为我不能在这里粘贴所有内容,但是问题是为什么我不能将 json 设置为数组以在代码中CellsData,所以我可以使用它来显示列表。

as? [NSArray: NSArray]肯定是不正确的,因此-因为强制转换失败并且执行了else分支。这意味着您期待一个字典,其中键和值的类型为 NSArray ,但您有一个数组或字典,因此它应该读取as? [[String: Any]]或类似,具体取决于您没有完全提供的响应。

另外var CellsData = [NSArray: NSArray]()必须分别改变。(顺便说一句:请熟悉可可触摸/SWIFT命名约定)

最新更新