gpt4 book ai didi

ios - 如何从 HealthKit Swift 4 中按小时计算步数

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:14 27 4
gpt4 key购买 nike

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

  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)
}
}

最佳答案

不要将 HKSampleQuery 用于图表数量类型。 HKStatisticsCollectionQuery 就是为此目的而设计的,它将为您拆分落入图表不同区域的样本。查看documentation有关如何构建查询和使用其结果的示例。

关于ios - 如何从 HealthKit Swift 4 中按小时计算步数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52386404/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com