gpt4 book ai didi

ios - TableView 未知阴影错误

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

我的应用程序中有一个表格 View ,我已将其设置为在两种不同的查看模式之间切换。按下按钮时,表格 View 将更改为显示已完成的任务,而不是需要注意的任务。切换此功能将按预期工作,直到您将任务标记为完成或未完成。此后,下次用户按下“显示完成任务”按钮时,应用程序将会崩溃,并给出以下错误:

Assertion failure in -[UITableView _addPendingSwipeDeletionShadowUpdateForSection:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3688.4/UITableView.m:15334

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView internal inconsistency: the _swipedIndexPath cannot be nil when adding the shadow update'

我知道该错误说明了有关阴影和滑动索引路径的信息,但我没有弄乱 TableView 的阴影,所以我不确定问题是什么,特别是因为几天前它工作得很好。我在完整数据和不完整数据之间切换的代码是这样的:

tableView.beginUpdates()
if showComplete {
showComplete = false
if completedArray.count != 0 {
tableView.deleteSections(NSIndexSet.init(index: 0) as IndexSet, with: .fade)
}
if taskArray.count != 0 {
allComplete()
}
else {
tasksIncomplete()
tableView.insertSections(NSIndexSet.init(indexesIn: NSMakeRange(0, taskArray.count)) as IndexSet, with: .fade)
}
}
else {
showComplete = true
if taskArray.count != 0 {
tableView.deleteSections(NSIndexSet.init(indexesIn: NSMakeRange(0, taskArray.count)) as IndexSet, with: .fade)
}
if completedArray.count == 0 {
allComplete()
}
else {
tasksIncomplete()
tableView.insertSections(NSIndexSet.init(index: 0) as IndexSet, with: .fade)
}
}
tableView.endUpdates()

函数allComplete()tasksIncomplete()只是在没有数据可查看或添加新数据时隐藏和显示tableView。我完成任务的代码如下:

self.tableView.beginUpdates()
self.completedArray.append(thisTask)
self.taskArray[indexPath.section].remove(at: indexPath.row)
if self.taskArray[indexPath.section] == [] {
self.taskArray.remove(at: indexPath.section)
self.dynamicSectionHeaders.remove(at: indexPath.section)
self.tableView.deleteSections([indexPath.section], with: .left)
}
else {
self.tableView.deleteRows(at: [indexPath], with: .automatic)
}
self.tableView.endUpdates()

标记任务未完成的代码是:

self.tableView.beginUpdates()
self.completedArray.remove(at: indexPath.row)
if self.completedArray.count == 0 {
self.tableView.deleteSections([0], with: .left)
}
else {
self.tableView.deleteRows(at: [indexPath], with: .automatic)
}
self.sortIncompleteTaskArray()
self.tableView.endUpdates()

taskArray 是一个二维数组,包含部分和实际数据。 completedArray 只是一维的。任何帮助将不胜感激。我查遍了,似乎这个错误从未被记录下来。谢谢。

最佳答案

按下完整按钮后,我可以通过手动重新加载整个数据源来解决该问题。它可能不是最好的解决方案,但它确实有效。

关于ios - TableView 未知阴影错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45039593/

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