我正在为练习项目创建在线订购服务。我最近读到的两件事是编辑tableview函数。当我去滑动删除一个项目时,它不会从数据库中取出正确的项目。此外,如果数组中只有一个项目,我尝试删除它会使它崩溃。任何人都知道这是怎么回事?
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
orderNumber.remove(at: indexPath.row)
itemsArray.remove(at: indexPath.row)
priceArray.remove(at: indexPath.row)
quantityArray.remove(at: indexPath.row)
databaseRef.child("Users/\((authRef.currentUser?.uid)!)/Order/\(orderNumber.remove(at: indexPath.row))").removeValue { (error, ref) in
if error != nil {
print(error?.localizedDescription as Any)
} else {
}
}
}
答案 0 :(得分:0)
看起来你只需要在删除之前检查数组计数: -
if orderNumber.count > indexPath.row {
orderNumber.remove(at: indexPath.row)
}
if itemsArray.count > indexPath.row {
itemsArray.remove(at: indexPath.row)
}
if priceArray.count > indexPath.row {
priceArray.remove(at: indexPath.row)
}
if quantityArray.count > indexPath.row {
quantityArray.remove(at: indexPath.row)
}
答案 1 :(得分:0)
显然,您要从orderNumber
两次删除。首先,你要在这里删除:
orderNumber.remove(at: indexPath.row)
然后你在这里删除:
child("Users/\((authRef.currentUser?.uid)!)/Order/\(orderNumber.remove(at: indexPath.row))")
您使用多个收藏品的具体原因是什么?