Мне нужно построить график для шагов, предпринимаемых пользователем на почасовой основе в любую конкретную дату.Но если шаги пользователя начинаются сегодня в 15:58 и заканчиваются сегодня в 16:10, то я получаю только один объект HKStatistics за этот период времени.Я не могу разбить эти данные на две выборки, так как мне нужно получить шаги, предпринятые в гнезде с 14:00 до 16:00.
static func getSteps(date: Date, duration: DateComponents, completion: @escaping ([HKSample]) -> Void) {
let quantityType : Set = [HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.stepCount)!]
let stepsQuantityType = HKQuantityType.quantityType(forIdentifier: .stepCount)!
let startOfDay = Calendar.current.startOfDay(for: date)
if let endOfDay = Calendar.current.date(byAdding: duration, to: startOfDay) {
var interval = DateComponents()
interval.hour = 1
let predicate = HKQuery.predicateForSamples(withStart: startOfDay, end: endOfDay, options: .strictStartDate)
let query = HKSampleQuery.init(sampleType:stepsQuantityType,
predicate: predicate,
limit: HKObjectQueryNoLimit,
sortDescriptors: nil,
resultsHandler: { (query, results, error) in
guard let result = results else {
return
}
// print("result healthkit",result.description)
//print("Total count:",)
completion(result)
})
healthStore.execute(query)
}
}