无效更新:无效的节数

时间:2017-07-23 14:34:54

标签: ios swift uitableview

  

由于未捕获的异常'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()

1 个答案:

答案 0 :(得分:1)

错误说明了一切。当if (self.states?.count)! > 3条件为假时。仅插入部分而不删除部分。 您应该相应地更新您的数据源。您必须拥有numberOfSections,因为您将返回someArray.count。当您插入某些部分时,请确保更新someArray,并在删除某些部分时从someArray中删除该元素。这将解决问题。