HKSampleQuery дает неожиданные результаты - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь получить все записи из HealthKit для .bodyMass с private let healthType = HKObjectType.quantityType(forIdentifier: .bodyMass)! и этим кодом запроса:

let mostRecentPredicate = HKQuery.predicateForSamples(
            withStart: Date(timeIntervalSince1970: 1546300800000),
            end: Date(),
            options: .strictEndDate
)

let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: false)

let query = HKSampleQuery(
           sampleType: healthType,
           predicate: mostRecentPredicate,
           limit: 20, 
           sortDescriptors: [sortDescriptor]
) { (query, results, error) in
    guard let quantityResults = results as? [HKQuantitySample] else {
       completion(nil) 
    }

    // quantityResults will be an empty array, with 0 values.

    // some more irrelevant code for now
}

healthStore.execute(query)

Однако я получаю массив results в обратном вызове18235 values где в приложении «Здоровье» у меня есть только 20. Кроме того, когда я пытаюсь привести результаты к HKQuantitySample, значений больше нет. Я неправильно использую фреймворк или что-то еще в игре?

Больше контекста: я запускаю этот код в расширении WatchKit с приложением WatchKit.

...