开机时间获取,注意重置系统闹钟会重置
- extension UIDevice {
- var bootTime: TimeInterval? {
- var tv = timeval()
- var tvSize = MemoryLayout
.size - let err = sysctlbyname("kern.boottime", &tv, &tvSize, nil, 0);
- guard err == 0, tvSize == MemoryLayout
.size else { - return nil
- }
- return Double(tv.tv_sec) + Double(tv.tv_usec) / 1_000_000.0
- }
- }
-
- // 使用
- UIDevice.current.bootTime