Я использую этот код для отслеживания последнюю перезагрузку:
+ (float) secondsSinceLastReboot{
return ((float)(mach_absolute_time())) * ((float)timebase.numer) / ((float)timebase.denom) / 1000000000.0f;
}
Я предположил, что mach_absolute_time () был основан на прошлом времени начальной загрузки устройства как он, находится на Mac. Это, кажется, не основано на этом. Я на самом деле понятия не имею, на основе чего это.
Посмотрите на следующее поведение (сегодняшняя дата 20.09.2009):
lastRebootTime = [[NSDate date] addTimeInterval:-[self secondsSinceLastReboot]];
//last Reboot Time will contain : 2009-09-20 07:42:14 +0100
Я абсолютно уверен, что не перезагружал свое устройство в то время. Мое устройство не было загружено за неделю.
Кроме того, когда я отсоединяю свое устройство от кабеля и запускаю это приложение, кажется, что, когда устройство засыпает, lastRebootTime начинает переключать будущее на нижний регистр. Кажется, что mach_absolute_time не сохраняет счет на время сна. Или я неправильно об этом?
Я действительно хотел бы иметь возможность получить метку времени от того, когда устройство в последний раз перезагрузило. Какая-либо идея?