Ios HealthKit步骤计算一段时间后被卡住的次数
我正在开发一个步骤计数应用程序。每一分钟调用一次Bellow方法。结果表明该方法是准确的。但过了一段时间,它开始返回所有值零。是否有任何限制,比如一小时最多可以有20个请求。或者我的代码有问题吗Ios HealthKit步骤计算一段时间后被卡住的次数,ios,objective-c,swift,healthkit,Ios,Objective C,Swift,Healthkit,我正在开发一个步骤计数应用程序。每一分钟调用一次Bellow方法。结果表明该方法是准确的。但过了一段时间,它开始返回所有值零。是否有任何限制,比如一小时最多可以有20个请求。或者我的代码有问题吗 func fetchStepsHistory(completion: @escaping (_ today: Int, _ yesterday: Int, _ average: Int) -> ()) { var sevenDaysTotal = 0 var todayStep
func fetchStepsHistory(completion: @escaping (_ today: Int, _ yesterday: Int, _ average: Int) -> ()) {
var sevenDaysTotal = 0
var todaySteps = 0
var yesterdaySteps = 0
let stepsQuantityType = HKQuantityType.quantityType(forIdentifier: .stepCount)!
let endDate = Date()
let startDate = Calendar.current.date(byAdding: DateComponents(day: -7), to: Date())
var interval = DateComponents()
interval.day = 1
// start from midnight
let calendar = Calendar.current
let anchorDate = calendar.date(bySettingHour: 0, minute: 0, second: 0, of: Date())
let query = HKStatisticsCollectionQuery(quantityType: stepsQuantityType,
quantitySamplePredicate: nil,
options: [.cumulativeSum],
anchorDate: anchorDate!,
intervalComponents: interval)
query.initialResultsHandler = { _, results, error in
guard let results = results else {
completion(todaySteps, yesterdaySteps, sevenDaysTotal/7)
print(error?.localizedDescription ?? "Error :- ")
return
}
results.enumerateStatistics(from: startDate!, to: endDate) { statistics, _ in
if let sum = statistics.sumQuantity() {
let steps = sum.doubleValue(for: HKUnit.count())
//print("Amount of steps Widget: \(steps), date: \(statistics.startDate)")
//DispatchQueue.main.async {
print("KiKi \(statistics.startDate) \(sum)" )
//completion(Int(steps))
if (Calendar.current.isDateInToday(statistics.startDate)){
todaySteps = Int(steps)
}
else if (Calendar.current.isDateInYesterday(statistics.startDate)){
sevenDaysTotal = sevenDaysTotal + Int(steps)
yesterdaySteps = Int(steps)
}
else{
sevenDaysTotal = sevenDaysTotal + Int(steps)
}
}
}
DispatchQueue.main.async {
completion(todaySteps, yesterdaySteps, sevenDaysTotal/7)
}
}
healthStore.execute(query)
}