好的我正在创建一个应用程序,您可以将项目添加到购物车,并在添加时更新。我做的所有添加罚款,但我不能删除工作。在购物车单元格中,我需要从3个数组中删除,但这似乎不是问题,因为我不断收到此错误:
"由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:'无效更新:第0部分中的行数无效。现有部分中包含的行数update(1)必须等于更新(1)之前该部分中包含的行数,加上或减去从该部分插入或删除的行数(0插入,1删除)和加或减数字移入或移出该部分的行(0移入,0移出)。'"
我不确定我在这里做错了什么。我已经遵循了一些教程,他们似乎都在做同样的事情。任何帮助表示感谢提前。
这是我的一些代码:
//declaring arrays to show in cell
var cartKeys = [String]()
var cartValues = [String]()
var deets = [[String]]()
var count = 0
//populating arrays from original arrays
func populateCart(){
for (key,value) in MenuStore.shared.cart {
self.cartKeys.append(key)
self.cartValues.append(value)
}
for i in MenuStore.shared.cartAndItems{
for (k,v) in i {
deets.append(v)
}
}
print("DEETS \(deets)")
for c in cartView.visibleCells {
count += 1
}
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
switch tableView{
case cartView:
if editingStyle == .delete{
let index = indexPath.row
print(index)
cartKeys.remove(at: index)
cartValues.remove(at: index)
deets.remove(at: index)
tableView.deleteRows(at: [indexPath], with: .automatic)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch tableView{
case cartView:
let cartCell = tableView.dequeueReusableCell(withIdentifier: "cartCell", for: indexPath) as? CartCell
cartCell?.cartTitle.text = cartKeys[(indexPath as NSIndexPath).row]
cartCell?.cartPrice.text = cartValues[(indexPath as NSIndexPath).row]
cartCell?.cartDetails.text = deets[count].joined(separator: ", ")
return cartCell!
PS。如果有人想要帮助更换可见细胞,那就更好了。 id喜欢循环遍历所有单元格,即使它们在屏幕上不可见。