在 Swift 中读取 CMSensorDataList

Posted

技术标签:

【中文标题】在 Swift 中读取 CMSensorDataList【英文标题】:Reading CMSensorDataList in Swift 【发布时间】:2016-06-11 17:13:35 【问题描述】:

我正在制作一个苹果手表应用程序,它可以获取从一个日期到另一个日期的加速度计数据。通过使用此代码:

@IBAction func start() 
    WKInterfaceDevice.currentDevice().playHaptic(WKHapticType.Start)
    let startDate = NSDate()
    NSUserDefaults.standardUserDefaults().setObject(startDate, forKey: "StartDate")


@IBAction func stop() 
    WKInterfaceDevice.currentDevice().playHaptic(WKHapticType.Stop)
    let endDate = NSDate()
    let startDate = NSUserDefaults.standardUserDefaults().objectForKey("StartDate") as! NSDate
    printData(startDate, endDate: endDate)

然后当我使用函数 printData() 导出数据时,这是该函数的代码

func printData(startDate: NSDate, endDate: NSDate) 
    let recorder = CMSensorRecorder()
    let list: CMSensorDataList = recorder.accelerometerDataFromDate(startDate, toDate: endDate)!

    for (index, data) in list.enumerate() 
        print(index, data)
    

对于枚举,我有一个扩展,这里是扩展的代码:

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

当我按下停止按钮时,应用程序崩溃。我从这个问题(Swift watchOS 2 - CMSensorDataList)中得到了我的所有代码,但它在我的设备上不起作用。有谁知道发生了什么?

【问题讨论】:

【参考方案1】:

您需要在 Info.plist 文件中为 NSMotionUsageDescription 输入一个条目。如果您在连接到 Xcode 时崩溃,它应该会为您提供此信息。

【讨论】:

以上是关于在 Swift 中读取 CMSensorDataList的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift iOS 中读取和记录图像的原始像素

在 Swift 中读取 CMSensorDataList

为啥我不能在 Swift5 中读取推送消息数据?

从 Firebase 读取数据并保存到数组中 (Swift)

如何在 Swift 中使用 Alamofire 读取本地 JSON

在 Swift 中从 json 文件中读取数据的正确方法是啥?