这有助于获得GPS时间:
#import
CLLocation* gps = [[CLLocation alloc]
initWithLatitude:(CLLocationDegrees) 0.0
longitude:(CLLocationDegrees) 0.0];
NSDate* now = gps.timestamp;
但它似乎并不是防篡改的.
我在飞机模式(iOS 6.1)的iPhone 4上尝试了这个代码,即使这样,它也能给你一个时间.但不幸的是,这一次似乎随系统时钟而变化.啊.
我发现(仍然处于飞行模式)的有趣的事情是,如果您篡改系统时钟(在关闭时间和日期自动设置之后),然后将自动设置重新打开,机器将恢复真实(原始)时间没有障碍.即使在手机电源循环后,这也能正常工作.因此,似乎设备内部维护的是防篡改时间.但是如何访问这个?
附:倒数第二个评论的作者在一个防辐射庇护所尝试了这个:所以很明显电话没有从任何外部来源获得原始时间.
附录,2013年7月
发现了一些关于另一种时间测量的帖子(here,here和here):系统内核启动时间.它可以通过以下调用来访问:sysctlbyname(“kern.boottime”,& boottime,& size,NULL,0);.不幸的是,即使没有重启,它也会随着用户调整的数据和时间而变化.另一个函数gettimeofday()同样依赖于用户定义的时间.