在iOS/Swift中获得系统正常运行时间

有没有办法让iOS系统正常运行(使用Swift)?我需要的是测量时间而不必担心用户改变时间.在Android中有一个elapsedCurrentTimeMillis(),它返回自启动以来的毫秒数,但现在我需要类似iOS的东西.这里有一个公认的答案Getting iOS system uptime, that doesn’t pause when asleep,但那是针对Objective C而我需要它用于Swift,我不知道如何转换它.
最佳答案
当你要求一个纯粹的Swift解决方案时,我从你提到的答案Getting iOS system uptime, that doesn’t pause when asleep转换了ObjC代码.

func uptime() -> time_t {
    var boottime = timeval()
    var mib: [Int32] = [CTL_KERN, KERN_BOOTTIME]
    var size = strideof(timeval)

    var now = time_t()
    var uptime: time_t = -1

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

// print(uptime())

为了使它更漂亮,我们可以使用sysctlbyname而不是sysctl:

// var mib: [Int32] = [CTL_KERN, KERN_BOOTTIME]
sysctlbyname("kern.boottime", &boottime, &size, nil, 0)

转载注明原文:在iOS/Swift中获得系统正常运行时间 - 代码日志