无效更新:节数无效

Naz*_*san 5 uitableview ios swift

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“更新无效:部分数量无效。” 更新后表视图中包含的节数 (3) 必须等于更新前表视图中包含的节数 (3),加上或减去插入或删除的节数(1 个插入,0 个已删除)。

但我根据我错过的数据源插入 1 并删除 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()
Run Code Online (Sandbox Code Playgroud)

Moh*_*diq 1

错误说明了一切。什么时候if (self.states?.count)! > 3 是假的。唯一的部分将被插入并且不会被删除。您应该相应地更新您的数据源。方法必须返回节数someArray.count。当您插入某个部分时,请确保更新某个数组,当您删除某个部分时,请从某个数组中删除该元素。这将解决问题。