Документация говорит, что отметка времени в CMAccelerometerData равна
отметке времени, которая записывает время, когда было произведено измерение события движения.А также: отметка времени - это количество времени в секундах с момента загрузки устройства.
Похоже, что это истина, если брать время из
NSProcessInfo.processInfo.systemUptime
и использование его в качестве смещения к текущему времени, скажем, эпохи Unix, работает.
Однако через некоторое время это прерывается и смещение больше не действует.Почему?
Я пытался использовать время безотказной работы с ОС следующим образом:
-(NSTimeInterval) getSystemUpTime {
struct timeval boottime;
int mib[2] = {CTL_KERN, KERN_BOOTTIME};
size_t size = sizeof(boottime);
struct timeval now;
struct timezone tz;
gettimeofday(&now, &tz);
double uptime = -1;
if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0)
{
uptime = now.tv_sec - boottime.tv_sec;
uptime += (double)(now.tv_usec - boottime.tv_usec) / 1000000.0;
}
return uptime;
}
Однако вычисленное смещение неверно, и полученное время в прошлом, разница: -17h 10 м.