在 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的主要内容,如果未能解决你的问题,请参考以下文章
从 Firebase 读取数据并保存到数组中 (Swift)