我有一些数据从数据库中提取并存储在我的UITableViewController
中的数组中。但是,当我尝试将数据放入每个单元格中时,我得到一个错误,即我的索引超出了数组的范围。
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cellItems.count
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let item: ItemPreBasketModel = cellItems[indexPath.row] as! ItemPreBasketModel
if indexPath.row == 0 {
//Desc cell
let cellIdentifier: String = "descCell"
let descCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)!
return descCell
} else if indexPath.row == 1 {
//Price cell
let cellIdentifier: String = "priceCell"
let priceCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)!
return priceCell
} else if indexPath.row == 2 {
//Quantity cell
let cellIdentifier: String = "quantityCell"
let quantityCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)!
return quantityCell
} else {
//Submit cell
let cellIdentifier: String = "submitCell"
let submitCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)!
return submitCell
}
}
以下是cellItems
变量以及填充的位置:
var cellItems: NSArray = NSArray() {
didSet {
tableView.reloadData()
}
}
func itemsDownloaded(items: NSArray) {
cellItems = items
tableView.reloadData()
}
这是故事板中的静态表视图:
我想做的事情,我已经从代码中删除了,因为它在到达此部分之前仍然失败,就是使用'项目'变量我在cellForRowAt
内声明并使用对象的一部分填充每个单元格出口
即:descCell.descLabel.text = item.name
我得到的错误是:
线程1:致命错误:在解包可选值时意外发现nil
就行了
let descCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)!