由于未捕获的异常'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()
答案 0 :(得分:1)
错误说明了一切。当if (self.states?.count)! > 3
条件为假时。仅插入部分而不删除部分。
您应该相应地更新您的数据源。您必须拥有numberOfSections,因为您将返回someArray.count。当您插入某些部分时,请确保更新someArray,并在删除某些部分时从someArray中删除该元素。这将解决问题。