Tôi nhận được CMDeviceMotion đối tượng từ CMMotionManager. Một trong các thuộc tính của CMDeviceMotion là dấu thời gian, được biểu diễn dưới dạng NSTimeInterval (double). Điều này cho phép độ chính xác thời gian "sub mili giây", theo tài liệu.NSTimeInterval để bỏ dấu thời gian
[motionManager startDeviceMotionUpdatesToQueue:motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) {
NSLog(@"Sample: %d Timestamp: %f ",counter, motion.timestamp);
}
Thật không may, NSTimeInterval được tính kể từ lần khởi động thiết bị cuối cùng, đặt ra những thách thức đáng kể khi sử dụng nó ở dạng thô.
Có ai có mã làm việc để chuyển đổi NSTimeInterval này thành dấu thời gian giống Unix (múi giờ UTC) không?
Cảm ơn bạn!
'NSTimeInterval' thường tương ứng với ngày tham chiếu. Nơi nào bạn nhận được rằng điều này là tương đối từ khởi động thiết bị cuối cùng? –
LOL tại "sub mili giây". 'NSTimeInterval' là một' double' với độ chính xác 53 bit, cho độ phân giải ít nhất là 1/2^52 * (thời gian từ 1/1/01). Điều đó hiện ra khoảng 80 nano giây. Chúng không chỉ đạt được độ chính xác * bất kỳ, như một phút với một máy tính cầm tay sẽ cho chúng biết, nhưng bây giờ không thể xác định chính xác các dấu thời gian bằng bất kỳ thứ gì khác với độ chính xác 10 mili giây. Hơn nữa, tôi nghi ngờ các phép đo được thực hiện khi giải trí chip cảm biến, trong khi các dấu thời gian phản ánh khi hạt nhân có xung quanh để xử lý dữ liệu. Thật là một mớ hỗn độn. – Potatoswatter