我使用Alamofire
从服务器获取一些数据,如下所示:
func getNewestFeed(order:String , page:Int) {
Alamofire.request("https://blahblah.com/api/front/\(page)/\(order)", method: .post, parameters: ["foo":"bar"], encoding: JSONEncoding.default, headers: nil).responseJSON(completionHandler: { respone in
if respone.response?.statusCode == 200 {
let result = respone.result.value as! [String:Any]
self.newestArray = result["records"] as! [Any]
self.tableView.reloadData()
} else {
//Show error
let alertController = UIAlertController(title: "Error", message: "", preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
alertController.addAction(cancelAction)
OperationQueue.main.addOperation { self.present(alertController, animated: true, completion: nil) }
}
})
}
默认服务器给我第1页,现在我需要添加更多数据self.newestArray
来加载更多内容。所以这是代码:
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
let lastElement = newestArray.count - 1
if indexPath.row == lastElement {
//add more data
}
}
现在我正在尝试将result
添加到self.newestArray
,如下所示:
let result = respone.result.value as! [String:Any]
self.newestArray.append(result["records"] as! [Any])
self.tableView.reloadData()
但因此错误而崩溃:
无法将“Swift.Array”类型的值(0x109c3c828)转换为 'Swift.Dictionary'(0x109c3c798)。
我应该如何向self.newestArray
添加更多数组并在表格视图中再次显示?
答案 0 :(得分:1)
append(_:)
用于将单个元素添加到数组的末尾。
如果您要添加项目集合,则有append(contentsOf:)
:
self.newestArray.append(contentsOf: result["records"] as! [Any])