gpt4 book ai didi

ios - 如何检测所有controllerDidChangeContent方法何时完成

转载 作者:行者123 更新时间:2023-11-30 12:08:35 25 4
gpt4 key购买 nike

我正在使用 NSfetchedResultsController。

当所有 controllerDidChangeContent 方法完成时,我需要向 CloudKit 发送更新。在我的例子中,controllerDidChangeContent方法被调用了几次,因为我从CloudKit接收了tableView中每条记录的更新,所以如果我在controllerDidChangeContent中调用cloudKit更新,它是要求每一行更新。这很糟糕。

是否可以检测controllerDidChangeContent何时完成所有更新并将我的CloudKit Send消息放入其中?

或者也许还有另一种方法?

最佳答案

没有什么好方法可以确定所有更新何时完成,因为“所有更新”没有有意义的定义。您可以随时进行新的更新,因此始终可以为获取的结果 Controller 准备好新的更新。

要查看特定对象列表的更新何时完成,您可以执行类似的操作

  1. 列出您将更新的对象 ID
  2. 每次获取结果 Controller 收到更新时,都会从列表中删除受影响对象的对象 ID。
  3. 当列表为空时,您就完成了该组更新。

对于更通用的解决方案,您可以使用 NSTimer 仅在几秒钟内没有收到新更新时触发更新。步骤是:

  1. 在您的controllerDidChangeContent中,检查计时器是否存在。如果没有,请创建一个。
  2. 将计时器的 fireDate 设置为 future 5 秒(或任意您想要的时间)。

每次收到更新时,您都会将计时器延迟 5 秒。如果 5 秒过去没有更新,计时器将触发。

关于ios - 如何检测所有controllerDidChangeContent方法何时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46367453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com