最近我遇到了一个很少出现的问题我尝试做的是获取每分钟的步数。
在我的代码中:
let date = NSDate()
for i in 0...1000 {
dispatch_async(mySerialQueue) {
self.pedoMeter.queryPedometerDataFromDate(date.dateByAddingTimeInterval( Double(i+1) * -60.0 ), toDate: date.dateByAddingTimeInterval( Double(i) * -60.0 ), withHandler: { (data, error) in
if let data = data {
print("\(data.numberOfSteps)")
}
})
}
}
有时,步数会返回一个很大的数字,可能大于 1000000。跟踪设备日志后,发现有错误日志:
Sep 15 16:42:59 locationd[6315] <Error>: Steps were found to be non monotonically increasing - start:488825.000000, end:488825.000000
那是奇怪的步数。
我试图避免这个问题。这就是我使用串行队列进行查询的原因。然而,我失败了。有什么办法可以避免吗?