在哪里放置经常检查的代码?

时间:2016-11-03 17:18:42

标签: ios swift uitableview viewdidload

我有一些需要经常调用的代码,例如检查它是哪一天,如果是第二天,那么在tableView中移动日期字符串。

现在我认为viewDidLoad会一直被调用,所以它会很好'把它放在那里。但是,我已经一夜之间离开了模拟器,我已经按下了主页按钮并再次点击,更改了VC等,并且viewDidLoad还没有被击中。

我可以选择进行零星检查,例如,这是新的一天吗?因为x发生了等等。

3 个答案:

答案 0 :(得分:3)

在这种特定情况下,您可以订阅NSCalendarDayChangedNotification,以便在日期更改时收到通知,并在视图控制器中做出相应响应。通常,didBecomeActive或viewDidAppear可能会起作用。

答案 1 :(得分:1)

  

我可以选择进行零星检查,例如,这是新的一天吗?

这取决于“是”的含义是什么!特别是“是”何时?你说“零星”,但那只是绒毛。你什么时候需要知道这个?您想要回应什么样的刺激?用户打开您的应用时?然后将其放入applicationDidBecomeActive。每天中午?然后运行NSTimer。真的,这里的问题是你自己似乎不知道何时你需要执行这些检查。

答案 2 :(得分:1)

虽然在您的应用中,很容易不断检查某些内容。您只需创建一个后台线程。但是,您所描述的是一个在应用程序生命周期之外持续存在的线程。

请阅读Apple自己提供的this documentation。你必须有一个很好的借口来放一个后台线程。此类线程的范围仅限于某些场景,例如下载背景资料,播放声音等。

对于您的方案,我会查看Application Delegate中找到的applicationDidBecomeActive(_:)。在那里你可以模仿这种不断的检查。但要注意,不要在启动时加重字,否则如果在合理的时间内它无法激活,你的应用可能会被自动杀死。