Swift Apple Health 血糖

Posted

技术标签:

【中文标题】Swift Apple Health 血糖【英文标题】:Swift Apple Health blood glucose 【发布时间】:2020-08-19 08:31:13 【问题描述】:

我可以访问 Apple Health,并且能够读取模拟器中的葡萄糖数据。

    guard let sampleType = HKSampleType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bloodGlucose) else 
        fatalError("*** This method should never fail ***")
    
    
    let query = HKSampleQuery(sampleType: sampleType, predicate: nil, limit: Int(HKObjectQueryNoLimit), sortDescriptors: nil) 
        query, results, error in
        
        guard let samples = results as? [HKQuantitySample] else 
            // Handle any errors here.
            return
        
        
        for sample in samples 
            print(sample)
        
        

我给我这个:

(2020-05-06 19:09:49 +0200 - 2020-05-06 19:09:49 +0200) 7.8 mmol/L 811AACEB-F942-4A48-937B-568AD66E1BDE “健康”(13.3),“iPhone12,3”(13.3)元数据: HKWasUserEntered = 1;

是否有可能只打印出 7.8 mmol? 我在 Apple 的文件中没有找到任何内容。感谢您的帮助。

【问题讨论】:

【参考方案1】:

sample 是 HKQuantitySample 类型的类。如果你 print(sample) 那么它将打印完整的类数据。

如果您只想打印数量,请尝试如下打印

print(sample.quantity)

【讨论】:

这是你看的吗?如果它回答了您的问题,您可以接受答案。 已解决:sample.startDate 谢谢!帮了我很多。有没有办法只获取来源,例如“健康”和日期?【参考方案2】:

我敢打赌,您还需要从数量中提取双精度值本身。这是一个示例代码

    let unit = HKUnit.gramUnit(with: .milli).unitDivided(by: HKUnit.liter())
    let value = sample.quantity.doubleValue(for: unit)

对于值的来源和设备你可以试试这个:

   let device = sample.device
   let sourceRevision = sample.sourceRevision

如果你愿意,你可以试试我的 CocoaPod。它是 HealthKit 框架之上的一个包装器,用于简化读/写操作。这是链接:https://cocoapods.org/pods/HealthKitReporter

【讨论】:

以上是关于Swift Apple Health 血糖的主要内容,如果未能解决你的问题,请参考以下文章

从 Apple 的 Health 应用程序访问数据步数

Apple Health Kit 错误域 = com.apple.healthkit 代码 = 5“未确定授权”

以编程方式打开 Apple Health

如何根据 Apple Health 中的时间戳查询 healthkit 数据? [关闭]

从 HealthKit 获取一系列血糖记录

React Native 开发中 Apple Health Kit 的虚假步骤数据