Разбор результатов по запросу HealthKit - PullRequest
0 голосов
/ 21 апреля 2020

Как вы анализируете информацию, полученную из запроса? Я ищу, чтобы сжигать активные калории, используя следующее:

func getActiveEnergy() {

    let calendar = NSCalendar.current
    let now = Date()
    let components = calendar.dateComponents([.year, .month, .day], from: now)

    guard let startDate = calendar.date(byAdding: .day, value: -7, to: now) else {
        fatalError("*** Unable to create the start date")
    }
    print("startDate -> \(startDate)")

    guard let endDate = calendar.date(from: components) else {
        fatalError("*** Unable to create the end date")
    }
    print("endDate -> \(endDate)")

    let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: [])

    let sort = NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: true)

    guard let sampleType = HKSampleType.quantityType(forIdentifier: HKQuantityTypeIdentifier.activeEnergyBurned) else {
        fatalError("*** This method should never fail ***")
    }

    let query = HKSampleQuery(sampleType: sampleType, predicate: predicate, limit: Int(HKObjectQueryNoLimit), sortDescriptors: [sort]) { (query, results, error) in

        guard let samples = results as? [HKQuantitySample] else {

            print("There was an error creating the query")
            return
        }

        for sample in samples {

            print("sample from query -> \(sample)")

        }

        DispatchQueue.main.async {

        }
    }
    self.healthKit.execute(query)
}

Результаты дают строку информации:

0,055 ккал 0FBBA46F-F9C0-4BB7-87F2-84B567900084 "Серия Кевина 4 "(6.2.1)," Watch5,2 "(6.2.1)" Apple Watch "(2020-04-14 17:05:27 -0400 - 2020-04-14 17:05:37 -0400)

Мне нужно только значение (double) в начале строки.

Спасибо за помощь.

...