我看到NSTimeZone有这些方法:
defaultTimeZone
localTimeZone
systemTimeZone
Run Code Online (Sandbox Code Playgroud)
有人可以用简单的方式向我解释,这些调用之间的差异是什么,何时应该使用而不是另一个?我不明白Apple文档中有关于此的任何内容.
我正在寻找一种方法来在iOS上获得绝对的,始终递增的系统正常运行时间.
它应该返回自设备上次重新启动以来的时间,并且不受系统日期更改的影响.
当设备处于休眠状态(所有我能找到任何方法暂停CACurrentMediaTime,[NSProcessInfo systemUptime],mach_absolute_time),或改变系统日期变更时(sysctl/KERN_BOOTTIME).
有任何想法吗?
我正在寻找一种可靠的方式来获得时间.它不能被篡改,它需要脱机工作.所以没有互联网时间,设置中没有用户时间设置,也没有上次重启后的BSD正常运行时间.我想知道,因为GPS使用原子钟工作,我是否可以访问该信息.
谢谢
我的应用程序使用mach_absolute_time来计算自上次触摸事件以来的刻度,并在超过10分钟的空闲时间限制时将用户记录下来.
这一切在iOS 6上运行良好,但我注意到它在iOS 7上运行不正确.具体来说,当iOS 7设备被拔掉(电池电量不足)时,设备似乎停止递增其滴答一旦进入睡眠状态控制台中的这一行(这在大约5分钟不活动后发生):
powerd [47]:睡眠:使用BATT(充电:99%)
因此,当我在10分钟后唤醒设备并使用mach_absolute_time计算滴答时,差异显示仅为5分钟(实际上已经过了10分钟).
奇怪的是,一切正常工作,当设备插入电源时,滴答声继续运行.它从未显示设备在插入时会在控制台日志上休眠(尽管屏幕确实关闭,并且在视觉上与拔出插头时的行为相同).
我也尝试过使用clock_get_time,我在那里遇到了同样的问题.
我可以在iOS 7中做些什么来保持设备进入睡眠状态时的马赫绝对时间?我不想使用,[[NSDate date] timeIntervalSince1970]因为用户可以操纵系统时间并绕过它.
感谢您的任何见解.
ios ×3
objective-c ×2
clock ×1
cocoa-touch ×1
gps ×1
gps-time ×1
ios7 ×1
iphone ×1
kernel ×1
mach ×1
nstimezone ×1
time ×1
uptime ×1