Что такое mach_absolute_time на основе на iPhone

Я использую этот код для отслеживания последнюю перезагрузку:

+ (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 не сохраняет счет на время сна. Или я неправильно об этом?

Я действительно хотел бы иметь возможность получить метку времени от того, когда устройство в последний раз перезагрузило. Какая-либо идея?

31
задан Maxm007 20 September 2009 в 12:07
поделиться