几个星期以来,我一直在努力寻找问题的答案,但没有任何运气。
我在swift中有一个应用程序,它会在屏幕上显示一些标签我希望标签文本每天午夜更改,并且我希望能够决定标签应该在我的机器上说什么
有人告诉我要么使用主动监听器,要么使用云功能。
下面的视频显示了一个开发人员使用firebase云功能在应用程序上实时更改文本。
https://www.youtube.com/watch?v=Z87OZtIYC_0
这与同样做同样事情的活跃听众有什么不同?
客观地说,什么更适合我的用例?
要在午夜执行函数以更改UI,首先需要打开应用程序。如果应用程序甚至没有打开,那么就没有可更新的UI。因此,将此功能分配给服务器是没有意义的,因为应用程序甚至可能没有打开。无论如何,更新UI的任务应该是客户端的责任。
因此,在客户端(在应用程序中(创建一个计时器,该计时器每午夜进行一次调用,从填充标签的服务器获取数据。您需要创建一个Timer
对象,该对象在n
秒到午夜之间激发,间隔为1天,并无限重复。它可能看起来像这样:
var midnightTimer: Timer?
midnightTimer = Timer(fire: Date().addingTimeInterval(secondsToMidnight), interval: oneDayInSeconds, repeats: true) { (timer) in
self.updateLabels()
}
RunLoop.main.add(midnightTimer!, forMode: .common)