我想在我的应用中每天奖励用户,但是当应用关闭时计时器总是停止
I've try doing this…
Timer.scheduledTimer(withTimeInterval: 86400, repeats: true) { _ in
self.points += 100
}
你能告诉我如何奖励用户每天一次吗?
计时器当然会停止;当你关闭Facebook时,新闻推送还在滚动吗?不,答案是不。特别是作为第三方开发者,我们必须在应用程序关闭数据之前完成所有任务。有功能可保持工作至~5min,但超过此时间,任何相关数据将关闭。
https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623111-applicationwillterminate
所以,我们需要考虑如何解决这个问题。因此,我们需要做的是
- 每次应用程序打开,我们检查日期
- 如果这是用户第一次打开应用程序,我们本地保存日期(
UserDefaults
) - 如果不是,我们需要检查日期是同一天还是不同的一天。
- 如果与保存日期是同一天,我们什么都不做
- 如果是不同的日子,我们将提供给用户我们的奖励,然后覆盖在我们的本地保存
UserDefaults
的日期
我认为你需要在用户默认值中调用函数(本地存储信息)。这里只调用一次函数很有用,比如显示onboarding。
或者在你的数据库上,你可以在那里设置定时器,例如AWS上的lambda函数