我需要为用户在任何特定日期每小时采取的步骤绘制图表。但是,如果用户的步骤从今天下午 3:58 开始,到今天下午 4:10 结束,那么我在这段时间内只得到一个 HKStatistics 对象。我无法将这些数据分成两个样本,因为我需要在 3-4 pm 时段和 4-5 pm 时段采取步骤。
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)
}
}