繁体   English   中英

Swift 苹果健康血糖仪

[英]Swift Apple Health blood glucose

我可以访问 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<180.1558800000541>/L 811AACEB-F942-4A48-937B-568AD66E1BDE“健康”(13.3), “iPhone12,3”(13.3)元数据:{ HKWasUserEntered = 1; }

有没有可能只打印出 7.8 毫摩尔? 我没有在 Apple 的文档中找到任何内容。 谢谢您的帮助。

示例是 class,类型为 HKQuantitySample。 如果您打印(示例),那么它将打印完整的 class 数据。

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

print(sample.quantity)

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

    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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM