我正在使用NSfetchedResultsController。
我需要在所有controllerDidChangeContent
方法完成后向CloudKit发送更新。
在我的案例controllerDidChangeContent
方法中多次调用,因为我从CloudKit接收了tableView中每条记录的更新,所以如果我在controllerDidChangeContent
中调用cloudKit更新,则每次更新都会调用它。这很糟糕。
是否可以检测controllerDidChangeContent何时完成所有更新并将我的CloudKit发送消息放入其中?
或许还有另一种方法吗?
答案 0 :(得分:0)
没有好的方法可以找出所有更新的完成时间,因为没有对“所有更新”进行有意义的定义。您可以随时进行新的更新,因此总是可以为获取的结果控制器准备好新的更新。
要查看对特定对象列表的更新何时完成,您可以执行类似
的操作对于更通用的解决方案,只有在几秒钟内未收到任何新更新时,您才可以使用NSTimer
来触发更新。步骤将是:
controllerDidChangeContent
中,检查计时器是否存在。如果没有,请创建一个。fireDate
设置为将来5秒(或者您想要多少)。每次获得更新时,您都会在未来5秒钟内延迟计时器。如果5秒没有更新,则计时器将会激活。