2017-06-20 40 views
1

我開發了一個iOS應用程序,它從手機的加速度計和陀螺儀收集數據,並且它應該處理一些數據並將其發送到雲端。如何檢索CMA加速度計數據確切的時間戳

問題是CMAccelerometerData for ex。基於CMLogItem,它將時間戳存儲爲'自電話啓動以來的時間(秒)「(蘋果文檔)。

爲了找到epoch中的實時時間(自1970年1月1日以來的秒數),我嘗試使用NSProcessInfo()。systemUptime,但事實證明這個值在某些情況下不準確,並給了我一個抵消了幾個小時!

在一些文章中提到,正常運行時間參數受系統睡眠影響,這可能是這些偏移量的問題(我必須指出,在調試時根本沒有偏移量)。

任何想法如何獲得CMLogItem的時間戳? (即使得到'足夠接近'的時間戳就足夠了,我可以跳過毫秒精度...)

在此先感謝!

回答

0

如果我正確地理解了您的問題,CMAccelerometerDataCMLogItem不是您需要使用的類型。

CMSensorRecorder.accelerometerData(from:to:)返回CMSensorDataList,它允許遍歷CMRecordedAccelerometerData對象,並且它們每個都有startDate: Date參數。

Additionaly,下面的擴展將遍歷所有的樣本更容易: extension CMSensorDataList: Sequence { public func makeIterator() -> NSFastEnumerationIterator { return NSFastEnumerationIterator(self) } }