Swift 如何检查步数是否可以被100的乘数整除
我试图在swift中实现一个逻辑,在这里我使用Swift 如何检查步数是否可以被100的乘数整除,swift,Swift,我试图在swift中实现一个逻辑,在这里我使用CMPedometer CMPedometer需要一些时间来更新结果,比如延迟1-2秒,假设用户已经采取了5个步骤,它将返回值5 现在我想做的是,每采取100个步骤,我就要更新用户分数。问题是,假设用户在步骤199,他们打开应用程序,走了5步,我从CMPedometer得到的返回值将是204,当我在if条件下输入204%100==0时,该值将不为真,因此我无法更新分数 if CMPedometer.isStepCountingAvailable()
CMPedometer
CMPedometer
需要一些时间来更新结果,比如延迟1-2秒,假设用户已经采取了5个步骤,它将返回值5
现在我想做的是,每采取100个步骤,我就要更新用户分数。问题是,假设用户在步骤199,他们打开应用程序,走了5步,我从CMPedometer
得到的返回值将是204,当我在if条件下输入204%100==0
时,该值将不为真,因此我无法更新分数
if CMPedometer.isStepCountingAvailable() {
self.pedoMeter.startUpdates(from: Date()) { (data, error) in
let stepCount = data.numberOfSteps
if (stepCount.intValue % 100 == 0) {
//Upddate scores
}
}
}
那么,我应该如何改变if条件才能使其工作呢?这在数学上是可能的吗
此外,我只记录了应用程序中今天采取的步骤,因此,如果用户达到199步,他们今天关闭应用程序并再次打开,他们将从199步继续,因此我保存了该数字。我将保留一个int值
registeredSteps
,并在分数超过100时增加该值。更新分数后,我会增加注册步骤的值
var registeredSteps = 0
...
if CMPedometer.isStepCountingAvailable() {
self.pedoMeter.startUpdates(from: Date()) { [weak self] (data, error) in
self?.trackSteps(data.numberOfSteps.intValue)
}
}
...
func trackSteps(_ steps: Int) {
let unregisteredSteps = steps - registeredSteps
if unregisteredSteps > 100 {
// update scores
registeredSteps += 100
}
}
只要除以100,你就会得到第1.04行的结果,这样你就知道他们曾经做过100次。当他们的步幅增加时,你会得到2.什么,3.什么,etc@loremipsum如果用户在一段时间后关闭应用程序并打开它,而我已经将更新分数发送给call,那么它会再次发送,因为104/100将是一个有效的呼叫,对吗?我想避免这种情况,这就是为什么我要使用显式值。