Swift watchOS 2-CMSensorDataList

发布于 2021-01-31 23:31:09

简短:我不知道从CMSensorRecorder中获取一个后,如何从CMSensorDataList中提取CMRecordedAccelerometerData。苹果尚未提供任何文档。

也许有人对我有暗示?;)

func startMovementDetection(){
    var accDataList = self.cmSensorRecorder!.accelerometerDataFrom(self.startDate, to: NSDate()) as CMSensorDataList

    CMRecordedAccelerometerData() //that's the class i want to extract from CMSensorDataList
}

好的,这里解决了这个问题:Swift中的NSFastEnumeration

借助Swift 3.0,它变为:

extension CMSensorDataList: Sequence {
    public func makeIterator() -> NSFastEnumerationIterator {
        return NSFastEnumerationIterator(self)
    }
}
关注者
0
被浏览
143
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。
    //First make the extension tu use enumerate in the for-in loop
    extension CMSensorDataList: SequenceType {
        public func generate() -> NSFastGenerator {
            return NSFastGenerator(self)
        }
    }
    
    //Now you can query the recorded data
    func printData(){
        let date = NSDate()
        let recorder = CMSensorRecorder()
        let sensorData: CMSensorDataList = recorder.accelerometerDataFromDate(initialDate!, toDate: date)!
    
        for (index, data) in sensorData.enumerate() {
            print(index, data)
        }
    }
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看