Я пытаюсь получить все записи из 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.