Short: I don\'t know how to extract the CMRecordedAccelerometerData from the CMSensorDataList after getting one from the CMSensorRecorder. Apple isn\'t providing any documen
Here's a Swift 4 approach. First, you’ll need to make CMSensorDataList conform to Sequence by means of an extension:
extension CMSensorDataList: Sequence {
public typealias Iterator = NSFastEnumerationIterator
public func makeIterator() -> NSFastEnumerationIterator {
return NSFastEnumerationIterator(self)
}
}
Now you can iterate over CMSensorDataList to obtain CMRecordedAccelerometerData instances, each consisting of a timestamp and an acceleration:
let rec = CMSensorRecorder() // and d1 and d2 are Dates
if let list = rec.accelerometerData(from: d1, to: d2) {
for datum in list {
if let accdatum = datum as? CMRecordedAccelerometerData {
let accel = accdatum.acceleration
let t = accdatum.timestamp
// do something with data here
}
}
}