我试图使用下面的代码来获取使用coremotion库的步骤数。但至于我的输出,我只得到的步数是不可用的。我不知道我在哪里出错,这是我第一次使用这个库。我怀疑我的约会对象一定有问题,但我不确定
@IBAction func btn(_ sender: Any) {
let calendar = Calendar.current
let twoDaysAgo = calendar.date(byAdding: .day, value: -2, to: Date())
pedometer.queryPedometerData(from: twoDaysAgo!, to: Date()) { (data, error) in
if(error != nil){
print(error)
}else{
if (data != nil ){
print(data?.numberOfSteps)
}else{
print("nil")
}
}
}
}
我也见过其他类似的问题,但都没有帮助。我的测试设备完全支持传感器,但问题是我收到的步骤数为空。有人知道我该怎么解决吗?
最佳答案
您应该检查带有isStepCountingAvailable()
CMPedometer功能的设备上是否有计步器
此外,函数startUpdates(from:withHandler:)
从您提供给当前时刻的日期检索数据。在您的例子中,您将该日期设置为现在,因此没有新的数据。
如果要检索特定开始和结束日期的数据,可以使用queryPedometerData(from:to:withHandler:)
以下是有关CMPedometer的一些文档:https://developer.apple.com/documentation/coremotion/cmpedometer
关于swift - CMPedometer步骤不可用。为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46649058/