Here's the Swift 4 approach. First, you need to make CMSensorDataList compatible with Sequence using the extension:
extension CMSensorDataList: Sequence {
public typealias Iterator = NSFastEnumerationIterator
public func makeIterator() -> NSFastEnumerationIterator {
return NSFastEnumerationIterator(self)
}
}
Now you can iterate over the CMSensorDataList to obtain instances of CMRecordedAccelerometerData, each of which consists of timestampand acceleration:
let rec = CMSensorRecorder()
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
}
}
}
source
share