处理“延后的”功能的好方法是什么?

时间:2019-07-16 23:22:09

标签: ios swift realm

到目前为止,我已经尝试了几种解决方案,但是不确定是否有“正确”的方法。我正在使用具有贪睡功能的待办事项清单。当我需要运行一个函数以将其移至其他列表时,每个任务都有一个“从贪睡中醒来”的时间。

我尝试遍历每个任务,并在viewWillAppear和/或viewDidAppear运行时移动它。通常这可以正常工作,但似乎偶尔会失灵,并且在应用程序运行且用户未切换视图时不会发生。

我尝试使用Timer()函数在实际的特定时间移动项目,这仅在应用程序运行时有效。

我尝试使用performFetchWithCompletionHandler在后​​台移动项目并每小时检查一次。

还有什么我应该尝试使运行更平稳吗?这是所有这些的结合吗?如果是这样,我如何确保我不会尝试同时移动两次物品?

1 个答案:

答案 0 :(得分:1)

通常,问题似乎是如何确保在特定日期时间发生某事。

  1. 计算出目标日期时间,然后将其记录在稳定的位置(文件,用户默认值等)以及随后发生的情况。

  2. 观看时钟。每分钟触发一次的计时器可能就足够了;只要看看时钟,看看时间是否过去了。如果有,请执行该操作并清除信息,指出该操作需要在该日期时间发生。

  3. 如果应用进入后台,请停止计时器。

  4. 当应用再次出现在前台时,请检查您的日期时间。

    • 如果时间已过去,请执行该操作并清除信息,指出该操作必须在该日期时间发生。

    • 如果没有,请重新启动计时器并继续观察时钟。