最近我遇到一个很难出现的问题 我尝试做的是获得每分钟的步数。
在我的代码中:
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
这就是奇怪的步数。
我正在努力避免这个问题。这就是我使用串行队列进行查询的原因。但是,我失败了。有什么方法可以避免吗?