Swift HKStatisticsQuery返回的数据内容

Swift HKStatisticsQuery返回的数据内容,swift,healthkit,Swift,Healthkit,我使用以下代码来获取今天消耗的能量: func getTodaysSummary(for type:HKQuantityType!, unit u:HKUnit!, completion: @escaping (Double) -> Void) { let stepsQuantityType = type let now = Date() let startOfDay = Calendar.current.startOfDay(fo

我使用以下代码来获取今天消耗的能量:

    func getTodaysSummary(for type:HKQuantityType!, unit u:HKUnit!, completion: @escaping (Double) -> Void) {
        let stepsQuantityType = type

        let now = Date()
        let startOfDay = Calendar.current.startOfDay(for: now)
        let predicate = HKQuery.predicateForSamples(withStart: startOfDay, end: now, options: .strictStartDate)

        let query = HKStatisticsQuery(quantityType: stepsQuantityType!, quantitySamplePredicate: predicate, options: .cumulativeSum) { (_, result, error) in
            var resultCount = 0.0

            guard let result = result else {
                completion(resultCount)
                return
            }

            if let sum = result.sumQuantity() {
                resultCount = sum.doubleValue(for: u)
            }

            DispatchQueue.main.async {
                completion(resultCount)
            }
        }

        healthStore.execute(query)
    }

...

self.getTodaysSummary(for: HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned), unit: HKUnit.kilocalorie(), completion: { (energyBurned) in
  print("\(energyBurned)")
})
现在我需要了解,它返回什么数据?在不同的来源,如苹果文档中,我读到的这些数据应该包含所有的活动,包括散步、游泳等

但在我的例子中,它只返回数字680(我通过健康应用程序活动能量屏幕上的
+
按钮手动添加了这个值)

它肯定不包括我白天做的步骤。 那么问题是,我需要单独计算这些卡路里吗?
此外,还有一些iWatch铃声似乎无法通过HKStatisticsQuery请求返回。我应该单独计算它们来计算总燃烧能量吗?

iPhone不会自动计算有功能量。用户必须拥有一块Apple Watch,才能将活动和基本能量样本自动写入HealthKit。

“选项:。累积能量”我认为只有“最终总和”是正常的,不是吗?检查一下吗?我要的就是这个。我唯一不明白的是,为什么这个值不包括行走时消耗的能量?我应该自己计算吗?谢谢你的回答,我会记住的。你能确认我关于步骤的建议吗?它是否包含在有功能量中?如果不是,那就很奇怪了,因为当人类行走时,能量是消耗的,对吗?我就是找不到关于这件事的任何信息。我知道如何将步数转换为卡路里,我只需要确保我必须与HealthKit提供的燃烧能量数据分开进行。如果我是你,我不会尝试自己计算步数的有功能量,因为准确的计算取决于用户已经采取了多少步数(他们的身高、体重、行走速度等)。为什么你需要为那些在HealthKit中还没有这些数据的用户计算有功能量?iPhone上记录的步骤对于热量计来说是一个糟糕的数据来源,因为用户不一定随身携带手机。当然,我不认为这是倾注源。我不建议将其作为单一来源使用。但它可能是除了其他能源,比如有功能量,还可以提供更高的精确度,不是吗?