如何在 Swift 中将计步器重置为 0?我正在使用 CMPedometer()
How to reset pedometer to 0 in Swift? I am using CMPedometer()
我想在我的应用程序中添加一个按钮,并通过按下它来将计步器重置为 0。现在我刚刚完成一个普通的计步器,我的代码如下:
@IBOutlet weak var step: UILabel!
var days:[String] = []
var stepsTaken:[Int] = []
let activityManager = CMMotionActivityManager()
var pedoMeter = CMPedometer()
override func viewDidLoad() {
super.viewDidLoad()
var cal = Calendar.current
var comps = cal.dateComponents([.year, .month, .day, .hour, .minute, .second], from: Date())
comps.hour = 0
comps.minute = 0
comps.second = 0
let timeZone = NSTimeZone.system
cal.timeZone = timeZone
let midnight = cal.date(from: comps)!
if(CMPedometer.isStepCountingAvailable()){
self.pedoMeter.startUpdates(from: midnight) { (data: CMPedometerData?, error) -> Void in
DispatchQueue.main.async(execute: { () -> Void in
if(error == nil){
self.step.text = "\(data!.numberOfSteps)"
}
})
}
} }
你不能"reset the pedometer"。它是一个硬件。
你所做的就是编写软件。没有法律规定您必须保持或显示 您的 计数与计步器保持的 its 计数相同的数字。维护您自己的单独计数作为一个实例 属性.
我想在我的应用程序中添加一个按钮,并通过按下它来将计步器重置为 0。现在我刚刚完成一个普通的计步器,我的代码如下:
@IBOutlet weak var step: UILabel!
var days:[String] = []
var stepsTaken:[Int] = []
let activityManager = CMMotionActivityManager()
var pedoMeter = CMPedometer()
override func viewDidLoad() {
super.viewDidLoad()
var cal = Calendar.current
var comps = cal.dateComponents([.year, .month, .day, .hour, .minute, .second], from: Date())
comps.hour = 0
comps.minute = 0
comps.second = 0
let timeZone = NSTimeZone.system
cal.timeZone = timeZone
let midnight = cal.date(from: comps)!
if(CMPedometer.isStepCountingAvailable()){
self.pedoMeter.startUpdates(from: midnight) { (data: CMPedometerData?, error) -> Void in
DispatchQueue.main.async(execute: { () -> Void in
if(error == nil){
self.step.text = "\(data!.numberOfSteps)"
}
})
}
} }
你不能"reset the pedometer"。它是一个硬件。
你所做的就是编写软件。没有法律规定您必须保持或显示 您的 计数与计步器保持的 its 计数相同的数字。维护您自己的单独计数作为一个实例 属性.