如何解决使用 Swift 从记录器读取加速度计数据
当应用程序进入后台时,我试图在苹果应用程序的后台运行一个加速度计,我打算使用 CMSensorRecorder 来记录数据。我在访问数据时遇到问题,并在尝试迭代结果并打印每一行时不断出错。下面是我使用的代码。
func runBackgroundAccelerometer() {
let recorder = CMSensorRecorder()
// record data in background
if CMSensorRecorder.isAccelerometerRecordingAvailable() {
print("Accelerometer available")
self.lastRecorderAccess = Date()
recorder.recordAccelerometer(forDuration: 5 * 60) // Record for 5 minutes
}
// METHOD 1
// let list = recorder.accelerometerData(from: Date(timeIntervalSinceNow: -60),to: Date())
// for row in list {
// print(row)
// }
// METHOD 2
if let list = recorder.accelerometerData(from: Date(timeIntervalSinceNow: -60),to: Date()) {
for data in list{
if let accData = data as? CMRecordedAccelerometerData{
let accX = accData.acceleration.x
let timestamp = accData.startDate
print(accX)
print(timestamp)
}
}
}
}
For-in 循环需要“CMSensorDataList?”符合“顺序”;你的意思是解开可选吗?
并使用方法2打印数据结果:
For-in 循环需要 'CMSensorDataList' 符合 'Sequence'
我在网上找到的示例当前不适用于最新的 swift 版本。我是 Swift 的新手,任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。