Я пытаюсь получить образцы HKWorkout с помощью HKSampleQuery в HealthKit от Apple. Кстати, я не могу получить имя устройства HKWorkout, которое отслеживалось Apple Watch.
Я мог бы получить несколько данных примера HKWorkout и подтвердить, что sourceRevision и totalDistance доступны. Но единственные данные устройства не могут быть подтверждены. Он показал, что имеет нулевое значение.
Apple упускает это из виду?
Вот мой код, чтобы поэкспериментировать с этим.
func getRunningWorkouts(completionHandler: @escaping (_ data:[AnyObject]?, _ response:Bool, _ error:Error?) -> Void) {
let predicateForRunning = HKQuery.predicateForWorkouts(with: .running)
let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: false)
let sampleType = HKWorkoutType.workoutType()
let sampleQuery = HKSampleQuery(sampleType: sampleType, predicate: predicateForRunning, limit: HKObjectQueryNoLimit, sortDescriptors: [sortDescriptor]) { (query, resultsArray, error) in
if error != nil {
print("Get an error to extract running workout: \(error)")
return
}
if let samples = resultsArray as? [HKWorkout] {
for sample in samples {
print(sample.device?.name)
completionHandler(samples, true, nil)
}
}
}
}
healthStore.execute(sampleQuery)
}