当tableview到达结束时添加更多数据

时间:2017-11-03 15:22:51

标签: ios arrays swift uitableview dictionary

我使用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添加更多数组并在表格视图中再次显示?

1 个答案:

答案 0 :(得分:1)

append(_:)用于将单个元素添加到数组的末尾。 如果您要添加项目集合,则有append(contentsOf:)

self.newestArray.append(contentsOf: result["records"] as! [Any])