【问题标题】:How to properly perform batch updates on an array如何在阵列上正确执行批量更新
【发布时间】:2014-08-07 22:06:58
【问题描述】:

对于UITableViews,插入、删除和移动操作在更新块内的顺序无关紧要,因为它们在调用-endAnimations 之前不会执行,然后它们作为@987654321 执行@

假设我有 3 个数组:
- 删除(只是一个索引)
- 插入(索引 + 对象)
- 移动(两个索引)

我如何正确地将这个“增量”应用于现有数组,就像 UITableView 将在其批量更新中一样?

【问题讨论】:

  • 仅供参考,Apple 引入了 performBatchUpdates:completion: On UITableview from iOS11,试试看。

标签: ios objective-c uitableview nsarray batch-updates


【解决方案1】:

诀窍是您保留一个字典(实际上是数组),根据每次更改期间发生的情况来解释索引号。原来 0 表示 0,1 表示 1,以此类推。但是如果你删除第 1 项,比方说,那么 2 表示 1,3 表示 2,等等 - 它上面的所有东西都必须被推下,这样如果你要求将第 2 项与某物交换,我们仍然可以找到你想要的对象在你说的时候按“2”。同样,如果您随后在第 2 项中插入某些内容,则必须将其上方的所有内容都推起来。

现在您可以进行删除、插入和移动。请注意,您必须按反向排序索引顺序进行删除(或使用索引集,以便一次将它们全部删除)和插入按正常排序顺序

【讨论】:

  • 我就是这么想的。您能否提供一些关于如何进行索引映射的示例代码?
猜你喜欢
  • 2015-11-08
  • 2022-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-20
  • 2013-06-29
  • 2012-12-23
  • 1970-01-01
相关资源
最近更新 更多