Уровень глюкозы в крови Swift Apple Health

#ios #swift #applehealth

#iOS #быстрый #applehealth

Вопрос:

Я получил доступ к 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)
        }
        
  

I дает мне это:

(2020-05-06 19:09:49 0200 — 2020-05-06 19:09:49 0200) 7.8 ммоль <180.1558800000541> / Л 811AACEB-F942-4A48-937B-568AD66E1BDE «Здоровье» (13.3), «iPhone12,3» (13.3) метаданные: {HKWasUserEntered = 1; }

Есть ли какая-либо возможность распечатать только 7,8 ммоль? Я ничего не нашел в документах от Apple. Спасибо за помощь.

Ответ №1:

sample — это класс типа HKQuantitySample. Если вы напечатаете (образец), то будут напечатаны полные данные класса.

Если вы хотите напечатать только количество, попробуйте выполнить печать, как показано ниже

 print(sample.quantity)
  

Комментарии:

1. Это то, на что вы смотрели? если это отвечает на ваш вопрос, вы можете принять ответ.

2. Решена: 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