Uptime iOS Objective-C - precisão em milissegundos

Estou tentando obter tempo de atividade para o iOS. Eu estava usando mach_absolute_time - mas achei que ele pausou durante o sono.

Eu encontrei este trecho:

- (time_t)uptime
{
    struct timeval boottime;
    int mib[2] = {CTL_KERN, KERN_BOOTTIME};
    size_t size = sizeof(boottime);
    time_t now;
    time_t uptime = -1;

    (void)time(&now);

    if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0)
    {
        uptime = now - boottime.tv_sec;
    }
    return uptime;
}

Isso faz o truque. MAS, está retornando segundos inteiros. Alguma maneira de obter milissegundos fora disso?

questionAnswers(3)

yourAnswerToTheQuestion