我试图使用下面的代码来获取使用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/

10-12 13:37