#ios #swift #healthkit #hksamplequery #applehealth
Вопрос:
Мой запрос частоты сердечных сокращений ниже использует более старую традиционную HKSampleQuery
методику для получения частоты сердечных сокращений, однако, если приложение сохраняет частоту сердечных сокращений в Apple Health как a HKCumulativeQuantitySample
, то мой запрос ниже не отражает все частоты сердечных сокращений внутри HKCumulativeQuantitySample
. Как я могу запросить, чтобы получить оба типа образцов частоты сердечных сокращений в Apple Health?
class func getHeartRateSamplesFrom(workout: HKWorkout, handler: @escaping ([HKQuantitySample]?, WorkoutManagerError?) -gt; Void) { guard let heartRateType:HKQuantityType = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.heartRate) else { return } //predicate let startDate = workout.startDate let endDate = workout.endDate let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: .strictStartDate) //descriptor let sortDescriptors = [ NSSortDescriptor(key: HKSampleSortIdentifierEndDate, ascending: false) ] let heartRateQuery = HKSampleQuery(sampleType: heartRateType, predicate: predicate, limit: (HKObjectQueryNoLimit), sortDescriptors: sortDescriptors) { (query:HKSampleQuery, results:[HKSample]?, error:Error?) -gt; Void in guard error == nil else { print("get heart rate error"); return } guard let unwrappedResults = results as? [HKQuantitySample] else { print("get heart rate error"); return} handler(unwrappedResults, nil) } HealthStoreSingleton.sharedInstance.healthStore.execute(heartRateQuery) }
Ответ №1:
Просто замените ваше использование HKSampleQuery
на HKQuantitySeriesSampleQuery
. Это даст вам все значения, соответствующие вашему предикату, независимо от того, являются ли они частью ряда.
Это можно использовать для всех типов количеств, поэтому , если вы когда-либо запрашивали отдельные значения an HKQuantityType
, вы, как правило, захотите сначала выполнить этот запрос.
Комментарии:
1. Спасибо, но не могли бы вы указать мне какой-либо пример кода для формирования
HKQuantitySeriesSampleQuery
документации, которая на самом деле не очень полезна или содержит какие-либо примеры, также не удалось найти ничего в Интернете, ища его.