У UIEvent есть метка времени. Как я могу создать эквивалентную стоимость самостоятельно? - PullRequest
1 голос
/ 09 марта 2010

Согласно документации по какао, timestamp на UIEvent - это «количество секунд с момента запуска системы».Это NSTimeInterval.

Я бы хотел сгенерировать, насколько это возможно, эквивалентное число.Конечно, Я хочу сделать это там, где UIEvent не светит.: -)

Ответы [ 2 ]

6 голосов
/ 09 марта 2010

Хорошо, я немного покопался, и вот что я придумал:

#import <mach/mach.h>
#import <mach/mach_time.h>

+ (NSTimeInterval)timestamp
{
    // get the timebase info -- different on phone and OSX
    mach_timebase_info_data_t info;
    mach_timebase_info(&info);

    // get the time
    uint64_t absTime = mach_absolute_time();

    // apply the timebase info
    absTime *= info.numer;
    absTime /= info.denom;

    // convert nanoseconds into seconds and return
    return (NSTimeInterval) ((double) absTime / 1000000000.0);
}

Это, по-видимому, эквивалентно timestamp из UIEvent, что с учетом того, что делает mach_absolute_time(), имеет большой смысл.

2 голосов
/ 09 марта 2010

Возможно, вы могли бы объединить метод NSDate -timeIntervalSinceDate: и mach основанную на фреймворке функцию GetPIDTimeInNanoseconds, чтобы получить тот же результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...