[英]Invalid update: invalid number of sections when doing TableView.reloadData()
我得到了例外:
无效更新:无效的节数。 更新后表视图中包含的节数(2)必须等于更新前表视图中包含的节数(1),加上或减去插入或删除的节数(1插入,1已删除)。
这就是我的部分 function 的样子。
func numberOfSections(in tavleView: UITableView) -> Int {
let someArray = someFunctionToRetrieveArrayFromUserDefaults()
return someArray.count
}
该数组是从 UserDefaults 检索的解码数组。 每次添加新值时,都会将编码数组写入 UserDefaults,因此它始终是最新的。
任何人都可以帮助澄清异常以及我做错了什么吗?
如前所述,插入 (1) + 删除 (1) 的数量为 1 - 1 = 0,而您返回的值为 2(someArray.count 为 2)。 你用过 peformBatch 吗? 插入/删除行?
为什么会这样? 从您提供的非常短的代码示例中很难知道,我假设您的数组不是线程安全的(您已经提到从 UserDefaults 解码),因此在调用 numberOfSections 时,数据尚未同步。
尝试制作一个不访问 UserDefaults 的更简单的 someArray,并使您的代码运行而不会崩溃。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.