【问题标题】:Reset the user's step count to 0将用户的步数重置为 0
【发布时间】:2019-07-14 12:19:34
【问题描述】:

我正在开发具有计步器功能的医疗保健应用程序。我正在使用 CMPedometer 类开始计算步数,但我正在寻找一种方法,可以在午夜后将计步器的步数设置为 0,并开始计算第二天的步数(当检测到运动时)等等。

我尝试过使用 NSDate 类,但很难真正将它们连接起来,如上所述。

    myPedometer = CMPedometer()

    myPedometer.startUpdates(from: NSDate() as Date, withHandler: { (pedometerData, error) in
        if let e = error {
            print(e.localizedDescription)
            return
        }
        guard let data = pedometerData else {
            return
        }
        let myStep = data.numberOfSteps
        self.stepLabel.text = "\(myStep)"


        var date = NSDate

        if date = 24:00  {
            self.myPedometer.stopUpdates()
        }

我不知道如何重置每天的步数,即使我已尝试使用 if 语句停止计步器更新。

此外,X-Code 不断为最后一个 if 语句发送错误消息,说“无法将类型 'int' 的值分配给类型 'NSDate.Type'。

【问题讨论】:

  • 我无法回答您的全部问题,但您的直接问题是您缺少 (): var date = NSDate() 并且您在应该使用 if 时使用 =使用=='。此外,24:00 也不是您可以比较日期的东西。在 Swift 中你应该使用Date,而不是NSDate

标签: swift pedometer


【解决方案1】:

使用此函数获取 2 个日期之间的步数。

func queryPedometerData(from start: Date, 
                     to end: Date, 
            withHandler handler: @escaping CMPedometerHandler)

更多详情请参考教程:https://medium.com/simform-engineering/count-steps-with-cmpedometer-on-iwatch-94b61bc3b87e

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多