带有 Swift 的 HealthKit 中用于 HKBloodGlucose 的 HKUnit

Posted

技术标签:

【中文标题】带有 Swift 的 HealthKit 中用于 HKBloodGlucose 的 HKUnit【英文标题】:HKUnit for HKBloodGlucose in HealthKit with Swift 【发布时间】:2021-07-12 18:29:23 【问题描述】:

我的名字是沙克。我是一名 ios 开发人员。 最近,我开始学习 HealthKit,在取得一些进展后,我遇到了一个需要帮助的问题。这是我的问题:

我一直在尝试将血糖数据保存到 healthKit,但我收到了“无法转换 'HKUnit.Type' to expected argument type 'HKUnit'" 类型的值。这是代码:

let bloodGlucoseQuantity = HKQuantity(unit: HKUnit, doubleValue: Double(bloodGlucose))

func saveBloodGlucoseSample(bloodGlucose: Int, date: Date) 
        guard let bloodGlucoseType = HKQuantityType.quantityType(forIdentifier: .bloodGlucose) else 
            fatalError("Blood glucose type is not longer available in HealthKit")
        
        let bloodGlucoseQuantity = HKQuantity(unit: HKUnit, doubleValue: Double(bloodGlucose))
        let bloodGlucoseSample = HKQuantitySample(type: bloodGlucoseType, quantity: bloodGlucoseQuantity, start: date, end: date)
        HKStore?.save(bloodGlucoseSample)  success, error in
            if let error = error 
                print("Error saving blood glucose sample: \(error.localizedDescription)")
             else 

                print("Successfully saved blood glucose sample")
            
        
    

如果有人对 HealthKit 有任何经验,特别是在血糖类型方面,如果您能帮助我,我将不胜感激。

【问题讨论】:

【参考方案1】:

let bloodGlucoseQuantity = HKQuantity(unit: HKUnit, doubleValue: Double(bloodGlucose))

您需要使用正确的 HKUnit 实例,而不仅仅是通过类。例如将HKUnit(from: "mg/dL") 传递给单元。

【讨论】:

【参考方案2】:

我在 Xamarin.forms 中开发了相同的应用程序。我们必须传递实际的 HKUnit 实例而不是直接类。在 xamarin.forms 我已经通过了

HKUnit.CreateMoleUnit(HKMetricPrefix.Milli,HKUnit.MolarMassBloodGlucose).UnitDividedBy(HKUnit.Liter)

您必须快速转换此代码,一切顺利!

【讨论】:

以上是关于带有 Swift 的 HealthKit 中用于 HKBloodGlucose 的 HKUnit的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 从适用于 ios 应用程序的 HealthKit 获取循环持续时间

如何在 swift 3 中获取和更新 Healthkit 中的高度?

HealthKit 仅在 Swift 2.0 中启动一次

HealthKit 仅在 Swift 2.0 中启动一次

如何在 swift 中使用 HealthKit 获得步行和跑步距离

每次使用 swift 在 HealthKit 中返回数字 0?