我们正在完成基于许可系统的应用程序。用户通过Web界面对其进行管理,然后可以根据需要同步他们的设备。因此,一旦设备同步,该应用程序就足以满足用户需要使用最新数据集更新其设备的程度。
现在我们已经实施了同步过程,以便在同步之前验证用户的许可证是否已过期。但不利的一面是,在我们的许可证期间,这些更新通常并不是必需的,而且或多或少都是静态的。
因此,我们试图弄清楚设备本身是否可能,强制用户定期同步到我们的服务器或许可证应该到期。
NSDate显然不是,因为它的值取决于用户,因此可以轻松更改。 mach_absolute_time()是我们考虑的另一个选项,但是当iPad重新启动时计时器会发生变化。我们需要一些方法来跟踪自许可证开始以来的绝对时间,无论应用程序或设备是否正在运行,并在应用程序启动时通知用户。
非常感谢任何帮助。
答案 0 :(得分:0)
有趣的问题。您可以保留NSUserDefaults值,该值表示运行应用程序的最高日期,以检测用户是否更改了设备时钟。您还可以构建服务客户端,以便在网络可用时检出外部服务器以获取当前时间。这样做,你在用户的控制之外寻找真正的时间。
如果用户不在网络上,您将无法获得时间,但使用这些设备时,他们经常会在网络上。当设备发生重大位置更改时,您还可以触发外部时间查找。有关多任务选项的Apple文档中描述了该功能。