Hello, the HKQuantityTypeIdentifierDistanceWalkingRunning is grouped into one and not broken down into laps or segments or markers
Below, please find our query and results.
Here is our query
guard HKHealthStore.isHealthDataAvailable() else {
completion(nil, NSError(domain: "HealthKit", code: 1, userInfo: [NSLocalizedDescriptionKey: "HealthKit is not available on this device."]))
return
}
guard let distanceType = HKObjectType.quantityType(forIdentifier: .distanceWalkingRunning) else {
completion(nil, NSError(domain: "HealthKit", code: 2, userInfo: [NSLocalizedDescriptionKey: "Unable to create distanceWalkingRunning type."]))
return
}
let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: .strictStartDate)
let query = HKSampleQuery(sampleType: distanceType, predicate: predicate, limit: HKObjectQueryNoLimit, sortDescriptors: nil) { _, samples, error in
if let error = error {
completion(nil, error)
return
}
let runningDistances: NSMutableArray = []
let distanceSamples = samples as? [HKQuantitySample]
if let distanceSamples = distanceSamples {
for sample in distanceSamples {
let distance = sample.quantity.doubleValue(for: HKUnit.meter())
let eventStartDate = self._dateFormatter.string(from: sample.startDate)
let eventEndDate = self._dateFormatter.string(from: sample.endDate)
let dict:[String:Any] = [
"startDate":eventStartDate,
"endDate":eventEndDate,
"distance": distance
]
runningDistances.add(dict)
}
}
completion(runningDistances, nil)
return
}
let healthStore = HKHealthStore()
healthStore.execute(query)
}