gpt4 book ai didi

ios - 删除 UITableViewCell 时更新 firebase 中的数据

转载 作者:行者123 更新时间:2023-11-30 11:50:56 24 4
gpt4 key购买 nike

我有一个 UITableView,我使用 commit editStyle 函数在向左滑动时删除单元格。问题是,当我这样做时,它会删除 firebase 中的正确数据,但随后它会再次更新它并且应用程序崩溃。这就是我得到的。

Firebase, before Firebase, after

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {

let taskToDelete = groupTask[indexPath.row]
if editingStyle == UITableViewCellEditingStyle.delete {
groupTask.remove(at: indexPath.row)
DataService.instance.REF_GROUPS.child(group!.key).child("task").child(taskToDelete.id).removeValue(completionBlock: { (error, refer) in
if error != nil {

} else {

}
})
self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
}
}

我还有一个功能,当您点击单元格时,它会更新 firebase 中的子项,然后显示图像。可能是该函数导致了崩溃:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
guard let cell = tableView.cellForRow(at: indexPath) as? GroupTaskCell else { return }

if cell.isSelected == true {
let selected = groupTask[indexPath.row]
DataService.instance.REF_GROUPS.observe(.value) { (snapShot) in
DataService.instance.updateTaskStatus(desiredGroup: self.group!, selected: true, childPath: selected.id, handler: { (complete) in
self.tableView.reloadData()
})
}
} else {

}
self.tableView.reloadData()
}

func updateTaskStatus(desiredGroup: Group, selected: Bool, childPath: String, handler: @escaping (_ taskArray: [Task]) -> ()) {

REF_GROUPS.child(desiredGroup.key).child("task").child(childPath).updateChildValues(["selected": selected])
}

关于如何解决这个问题有什么想法吗?

最佳答案

你应该标记self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.automatic) with self.tableView.beginUpdates()self.tableView.endUpdates( )

所以应该是这样的

self.tableView.beginUpdates()
self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
self.tableView.endUpdates()

并确保您没有立即重新加载数据,因为这会导致崩溃。我认为您根本不应该重新加载数据,只需确保从 tableView 中删除单元格以及从 Firebase 中删除数据就足够了。您可以在下次检索数据或呈现 tableView 时重新加载 tableView

关于ios - 删除 UITableViewCell 时更新 firebase 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48323188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com