Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios11上swift中的CMSensorDataList枚举_Ios_Swift_Core Motion - Fatal编程技术网

ios11上swift中的CMSensorDataList枚举

ios11上swift中的CMSensorDataList枚举,ios,swift,core-motion,Ios,Swift,Core Motion,关于通过CMSensorDataList枚举的讨论很多,但是,它们都有相同的示例: extension CMSensorDataList: SequenceType { public func generate() -> NSFastGenerator { return NSFastGenerator(self) } } 由于多种原因(NSFastGenerator不存在,SequenceType已重命名为Sequence) 如何在现代swift中通过CM

关于通过CMSensorDataList枚举的讨论很多,但是,它们都有相同的示例:

extension CMSensorDataList: SequenceType {
    public func generate() -> NSFastGenerator {
        return NSFastGenerator(self)
    }
}
由于多种原因(
NSFastGenerator
不存在,
SequenceType
已重命名为
Sequence


如何在现代swift中通过
CMSensorDataList
进行枚举?

如果swift 4和5可以工作

extension CMSensorDataList: Sequence {
    public typealias Iterator = NSFastEnumerationIterator
    public func makeIterator() -> NSFastEnumerationIterator {
        return NSFastEnumerationIterator(self)
    }
}
现在你需要像吹一样

let rec = CMSensorRecorder() 
if let list = rec.accelerometerData(from: date1, to: date2) {
    for item in list {
        if let data = item as? CMRecordedAccelerometerData {
            let x = data.acceleration.x
            print("X: \(x)")
        }
    }
}
以下是Swift 3版本: