【发布时间】:2017-07-23 14:34:53
【问题描述】:
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效更新:无效的节数。更新后表视图中包含的节数(3)必须等于更新前表视图中包含的节数(3),加上或减去插入或删除的节数(1插入,0已删除)。'
但我根据我错过的数据源插入 1 并删除了一个
self.states?.append(sortedStates) //Update state property
if (self.states?.count)! > 3 {
self.states?.removeFirst()
}
self.newsFeedTableView.beginUpdates()
self.newsFeedTableView.insertSections([(self.states?.count)! - 1], with: .none)
if (self.states?.count)! > 3 {
let statesForoldestStateTime = self.states?.first
self.newestStateTime = statesForoldestStateTime?.first?.createdAt
let indexpostion = (self.states?.count)! - 3
self.newsFeedTableView.deleteSections([indexpostion], with: UITableViewRowAnimation.none)
}
self.newsFeedTableView.endUpdates()
【问题讨论】:
-
满足条件才更新。
-
不相关,但考虑合并您数量惊人的问号。例如,为什么
states是可选的? -
@vadian 数据从网络加载,这就是声明
var states : [[State]]?的原因 -
在大多数情况下,将集合类型声明为空的非可选类型
var states = [[State]]()更合适,尤其是对于数据源数组。
标签: ios swift uitableview