我有一个应用程序需要我在一段时间后采取行动。例如,如果用户在几周内没有进入应用程序,当用户最终启动应用程序时,我必须要求他们输入在安装此应用程序时提供给他们的特殊代码。(这是一个内部应用程序,出于安全考虑,我被要求这样做)
我正在使用 [NSDate date] 方法来检索用户登录的日期并将其保存到数据库中。我会在他们下次打开应用程序时比较这个保存的日期,看看他们上次登录后的时间。问题是 [NSDate date] 给出的时间受时间设置影响,用户可以在本机设置应用程序中手动更改时间设置。您可能会说,这给我的情况带来了很多问题。如果假设用户在 3 周不活动后输入特殊代码,他可以通过修改本机设置应用程序中的时间来使应用程序显示此屏幕,或者更糟的是,通过将时间设置为前一个日期来避免它那将是在他活动后的 3 周内。
有没有办法获得“系统时间”而不是“用户时间”?我已经查看了 mach_absolute_time() 但这会在设备重新启动后重置。由于我将要比较的不活动时间相当长,因此设备很可能会在那时重新启动。我还想过使用网络连接从应用程序外部的服务器获取时间,但是很多用户在他们使用 iPad 的地方无法访问 wifi。如果我找不到其他任何东西,那将是我最后的解决方案。由于它们在使用过程中的位置,我正在尝试使用设备本身的所有内容。
我在这里忽略了一些简单的事情吗?这似乎太简单了,没有答案。请引导我走向正确的方向。先感谢您。