ios11上swift中的CMSensorDataList枚举

Posted

技术标签:

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

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

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

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

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

【问题讨论】:

这里是 Swift 3 版本:***.com/q/31101573/1187415 【参考方案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)")
        
    

【讨论】:

以上是关于ios11上swift中的CMSensorDataList枚举的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 11 Swift 4 上应用渐变后 UINavigationBar 标题和按钮消失

无视频输出和 [MC] 从公共有效用户设置中读取。 Swift/iOS 11 中的错误

Swift 3 - iOS 11.2 上的 UICollectionview 问题

在 iOS 13 上同步更新线程内的发布值时,Swift 崩溃

带有 Swift 的 Firebase 推送通知在 ios 11.4 中不起作用

iOS 11 Swift 4 iPhone X Safe Area 支持全屏ScrollView