带有 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 中的高度?