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 "Health" (13.3), "iPhone12,3" (13.3)metadata: {
HKWasUserEntered = 1; }
有没有可能只打印出7.8 mmol?
我没有在 Apple 的文档中找到任何内容。感谢您的帮助。
sample 是 HKQuantitySample 类型的 class。如果您打印(示例),那么它将打印完整的 class 数据。
如果您只想打印数量,请尝试如下打印
print(sample.quantity)
我打赌您还需要从数量中提取双精度值本身。这是一个示例代码
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 框架之上的包装器,用于简化 reading/writing 操作。这是link:https://cocoapods.org/pods/HealthKitReporter
我可以访问 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 "Health" (13.3), "iPhone12,3" (13.3)metadata: { HKWasUserEntered = 1; }
有没有可能只打印出7.8 mmol? 我没有在 Apple 的文档中找到任何内容。感谢您的帮助。
sample 是 HKQuantitySample 类型的 class。如果您打印(示例),那么它将打印完整的 class 数据。
如果您只想打印数量,请尝试如下打印
print(sample.quantity)
我打赌您还需要从数量中提取双精度值本身。这是一个示例代码
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 框架之上的包装器,用于简化 reading/writing 操作。这是link:https://cocoapods.org/pods/HealthKitReporter