objective-c - iOS中是否有一个可以使用但用户无法更改的时钟

标签 objective-c ios time

我正在尝试设计一个实时事件发生的系统,我想将它们与时钟同步。 [NSDate date] 通常没问题,但用户可以更改它并欺骗系统。我只需要一个时钟,我可以从中获取相对时间(例如 64 位计数器)- 我不需要绝对时间(或一天中的时间等)。

是否有这样的 API 我可以使用?

编辑:我还想补充一点,这个时钟需要在应用程序的 session 期间保持不变。

最佳答案

iPhone 上最好的单调递增数字是 mach_absolute_time(),它是自上次重启以来的 CPU 滴答计数。如果您出于任何原因想要在几秒钟内获得它,可以使用 CACurrentMediaTime() 轻松获取它。

使用它来创建“始终递增”非常简单。首次启动时,将当前值存储在您喜欢的任何位置。当您退出时,并定期保存该值的偏移量。重新启动时,检查当前值;如果它小于您之前的基准值,请替换您的基准值(已重启)。

当然,所有这些都可以通过删除您的应用程序来清除,除非您在服务器上存储了一些东西。

请注意,这不能用作强大的安全措施。无法阻止授权用户伪造请求。因此,根据您所说的“欺骗系统”的含义,它可能不是一个可以解决的问题。您能做的最好的事情就是不断努力寻找黑客并处理它们。

关于objective-c - iOS中是否有一个可以使用但用户无法更改的时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11413616/

相关文章:

objective-c - cocoa : dock like window

objective-c - 在 WatchKit 应用程序中使用来自 Web API 的数据动态加载 View

ios - 上传前缩小照片尺寸

ios - 发送http删除请求

c# - 有人偷了我的分钟 :/

iphone - 如何检索用户当前的城市名称?

ios - 在 xcode 项目中使用 Matlab 功能

ios - 在 iOS 中修改 CNContact 的属性

time - 解析不是 'standard' 格式的日期/时间字符串

PostgreSQL 时间戳字段