【问题标题】:CMSensorDataList enumeration in swift on ios11ios11上swift中的CMSensorDataList枚举
【发布时间】:2017-09-26 01:10:43
【问题描述】:

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

extension CMSensorDataList: SequenceType {
    public func generate() -> NSFastGenerator {
        return NSFastGenerator(self)
    }
}

由于多种原因,这在 ios11 上不起作用(NSFastGenerator 不存在,SequenceType 已重命名为 Sequence)。

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

【问题讨论】:

标签: ios swift core-motion


【解决方案1】:

如果 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)")
        }
    }
}

【讨论】:

    猜你喜欢
    • 2015-09-15
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多