我已经开发了一个iOS应用程序,它可以从手机的加速计和陀螺仪收集数据,它应该会处理一些数据并将其发送到云中。
问题是ex的CMAccelerometerData。是基于CMLogItem的,它将时间戳存储为“手机开机以来的秒数”(苹果文档)。
为了找到实时时间(自1970年1月1日以来的秒数),我尝试使用NSProcessInfo().systemUptime,但事实证明这个值在某些情况下不准确,并给出了几个小时的偏移量!
在一些帖子中提到,正常运行时间参数受到系统休眠的影响,这可能是这些偏移量的问题(我必须指出,在调试时根本没有偏移量)。
你知道怎样才能得到CMLogItem的时间戳吗?(即使获得一个“足够接近”的时间戳也足够了,我可以跳过毫秒精度……)
提前感谢!
发布于 2017-06-20 21:09:08
如果我没理解错你的问题,CMAccelerometerData和CMLogItem不是你需要使用的类型。
CMSensorRecorder.accelerometerData(from:to:)返回CMSensorDataList,它允许遍历CMRecordedAccelerometerData对象,并且每个对象都有startDate: Date参数。
另外,下面的扩展将使样本迭代变得更容易:extension CMSensorDataList: Sequence { public func makeIterator() -> NSFastEnumerationIterator { return NSFastEnumerationIterator(self) } }
https://stackoverflow.com/questions/44653320
复制相似问题