当前位置: 首页 > 面试题库 >

更新无效:第0部分中的项目数无效。

蒙才
2023-03-14
问题内容

最近我收到以下错误:

致命异常:NSInternalInconsistencyException无效更新:部分0中的项目数无效。更新(13)之后现有部分中包含的项目数必须等于更新(12)前该部分中包含的项目数,再加上或减去从该部分插入或删除的项目数(插入0,删除0),再加上或减去从该部分移入或移出的项目数(移入0,移出0)。

我的tvOS客户端中的以下代码中发生错误:

 let removedIndexPaths = removedIndexes.map({ IndexPath(row: $0, section: 0) })
 let addedIndexPaths = addedIndexes.map({ IndexPath(row: $0, section: 0) })
 let updatedIndexPaths = updatedIndexes.map({ IndexPath(row: $0, section: 0) })

  self.collectionView?.performBatchUpdates({
      self.collectionView?.deleteItems(at: removedIndexPaths)
      self.collectionView?.insertItems(at: addedIndexPaths)
      }, completion: { _ in
          guard let collectionView = self.collectionView else {
              return
          }

          for indexPath in updatedIndexPaths {
              if let myCell = collectionView.cellForItem(at: indexPath) as? MyCollectionViewCell {
                  let item = self.dataManager.items[indexPath.row]
                  myCell.updateUI(item)
               }
          }

          let collectionViewLayout = self.collectionViewLayoutForNumberOfItems(self.dataManager.items.count)
          if collectionViewLayout.itemSize != self.collectionFlowLayout.itemSize {
                collectionView.setCollectionViewLayout(collectionViewLayout, animated: false)
          }
  })

我在集合视图中仅使用了一个部分:

override func numberOfSections(in collectionView: UICollectionView) -> Int {
    return 1
}

我已经检查了关于同一主题的几篇文章,但是它们并没有解决我的问题,我的猜测是问题出在以下两行中,但是我不确定:

 self.collectionView?.deleteItems(at: removedIndexPaths)
 self.collectionView?.insertItems(at: addedIndexPaths)

请帮忙。


问题答案:

对insertItems(at
:)
和deleteItems(at
:)
的调用也必须伴随数据源的更改。

因此,在调用这些API之前,您需要更改数据源,即在调用之前向其中添加对象,并在调用insertItems之前从其中删除对象deleteItems



 类似资料:
  • 问题内容: 我一直在尝试找出如何更新dynamoDB中的项目,但没有成功。 我知道如何添加和删除项目,但不更新。 这是我的代码: 问题答案: 看来您正在尝试使用Expression更新项目,在这种情况下,您不正确。无论是和用于占位符代替你的表达。 我想如果您想为某项设置属性,您的代码将类似于以下内容: 这将更新一个看起来像这样的项目: 对此:

  • 我已经为我的项目配置了mi pom.mxl文件,从一开始它就在控制台上显示以下错误: 我总是忽略这一点,因为我的IDE中的项目总是编译和运行的,而且我从来没有使用过这种依赖关系。但现在,我正试图在Mac的终端上使用maven支持运行我的项目,并且由于Sun:tools.jar依赖关系,我不允许编译到目前为止开发的任何工作项目。 我读过很多类似的文章,都是关于使用相同的sun:tools:jar依赖

  • 问题内容: 我不是SQL专家,但在iPhone应用程序中存在一个错误,其中UPDATE语句对数据库没有影响。我一直在为FireFox使用SQLlite管理器插件,通过反复修改和在db上运行UPDATE来尝试dbug。我还仔细运行了该语句,并使用SQL Validator进行了验证,该语句符合核心SQL标准。 您能发现以下给出的陈述有什么问题吗? 问题答案: SQLite以及Mozilla,Goog

  • 我有一个购物车,目前允许我添加产品,删除产品,并与一个产品在车上,我可以改变其数量。 然而,如果我在购物车中有两个产品,我试图改变第一个项目的数量,网站就会崩溃。它不会用新的数量重新加载页面,它只是超时,你不能再点击网站上的任何其他链接。 显示数量的代码为: 处理这个问题的代码如下: 我在这里查看了答案,但没有找到解决方案。有人能帮我吗?我会尽力提供可能需要帮助的任何其他信息。 我只是想澄清一下,

  • 致命错误:C:\xampp\htdocs\otakutangerang_admin\C_action.php:33堆栈跟踪:#0 C:\xampp\htdocs\otakutangerang_admin\C_action.php(33):PDO语句中出现未捕获的异常“PDOException”,并显示消息“SQLSTATE[HY093]:参数编号无效”-

  • 在 Git 中没有多少访问网络的命令,几乎所以的命令都是在操作本地的数据库。 当你想要分享你的工作,或者从其他地方拉取变更时,这有几个处理远程仓库的命令。 git fetch git fetch 命令与一个远程的仓库交互,并且将远程仓库中有但是在当前仓库的没有的所有信息拉取下来然后存储在你本地数据库中。 我们开始在 从远程仓库中抓取与拉取 一节中介绍了此命令,然后我们在 远程分支 中看到了几个使用