swift - 仍然无法删除 tableviewcells
问题描述
我在本月初发布了有关此内容的信息,但没有人回应,随着时间的流逝,我尝试自己更改它,但是在阅读了大约 20 个帖子并尝试从每个帖子中实现代码之后,我仍然感到困惑。
我想要做的就是成功删除我的应用程序中的一个单元格,没有错误。
这是我在尝试删除一个单元格时不断遇到的错误,我已经阅读了一百万次,并多次尝试更改我的代码,但我再也受不了了。
这是我的代码:
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? {
guard orientation == .right else { return nil }
let deleteAction = SwipeAction(style: .destructive, title: "Delete") { action, indexPath in
let documentId = self.documentsID[indexPath.row]!.docID
self.db.document("school_users/\(self.user?.uid)/events/\(documentId)").delete { (err) in
if let err = err {
print("Error deleting the docs")
} else {
print("Docs successfully deleted.")
}
}
self.documentsID.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .fade)
}
deleteAction.image = UIImage(named: "delete-icon")
return [deleteAction]
}
此功能从数据库中删除文档,这很棒,但它也完全使我的应用程序崩溃,我尝试将东西包装在DispatchQueue.main
闭包、DispatchQueue.global
闭包中,但都无济于事。是的,这是一个令人尴尬的问题,但我只想弄清楚一次,而不必再担心。
我还将附上我的numberOfRowsInSection
方法,因为错误也提到了这一点。
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if events.count > 0 {
tableView.separatorStyle = .singleLine
tableView.separatorColor = .systemGreen
tableView.separatorInset = UIEdgeInsets(top: 0, left: 25, bottom: 0, right: 25)
return events.count
} else {
tableView.separatorStyle = .none
return 0
}
}
谢谢。
解决方案
该错误消息基本上是说“您最初有 12 行,但您删除了 1(使用deleteRows
方法),但现在说您仍然需要 12 行,所以有些不对劲”。
因此,在您的情况下, event.count 仍然必须生成数字 12。您是否确保events
在调用该deleteRows
方法之前删除了一个元素?
推荐阅读
- html - Angular 未检测到模板中的更改
- javascript - Django - 无法识别 Javascript 文件 - 静态问题?
- d3.js - d3.js - 在力有向图组上添加背景矩形
- .net - Redis - IIS8 - 如何验证证书(会话缓存)
- visual-studio - C++ 项目之间是否应该避免项目引用?
- angular - Firebase 异步错误:InvalidPipeArgument: '[object Object]' for pipe 'AsyncPipe'
- reactjs - 无法进行身份验证:React 应用程序中的 Azure 身份验证
- wordpress - 从旧主机迁移到新主机后,Wordpress 主题中断
- discord.js - TypeError:无法读取未定义 discord.js 的属性“toLowerCase”
- laravel - 在 Laravel 和 Vue.js 项目中找不到 SASS 依赖项