【问题标题】:CMPedometer Steps not Available . why?CMPedometer 步骤不可用。为什么?
【发布时间】:2018-03-20 19:36:44
【问题描述】:

我正在尝试使用以下代码来获取使用 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")
            }
        }
    }
}

我看到了其他类似的问题,但它们没有帮助。我的测试设备完全支持传感器,但问题是我收到的步数为空。任何 idae 我该如何解决?

【问题讨论】:

    标签: swift xcode nsdate core-motion


    【解决方案1】:

    您应该检查具有isStepCountingAvailable() CMPedometer 功能的设备上是否可以使用计步器

    另外,函数startUpdates(from:withHandler:) 检索从您给出的日期到现在的数据。在您的情况下,您将该日期设置为现在,因此没有新数据。

    如果要检索特定开始和结束日期的数据,请使用queryPedometerData(from:to:withHandler:)

    这里有一些关于 CMPedometer 的文档:https://developer.apple.com/documentation/coremotion/cmpedometer

    【讨论】:

    • 我已经更新了我的问题,但我无法得到任何令人满意的结果。有什么想法吗?
    • 您正在测试的设备是什么?您必须致电 CMPedometer。 isStepCountingAvailable()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2020-04-16
    相关资源
    最近更新 更多