Выполняются ли запросы Apple HealthKit асинхронно?
Запросы Apple HealthKit наподобиеHKStatisticsQuery
,HKSampleQuery
иHKStatisticsCollectionQuery
выполняться асинхронно или нам нужно явно запускать запросы в отдельном потоке?
Я просто написал запросы, используя любой асинхронный способ, как показано ниже, и он работает. Я хочу знать, должен ли я помещать его в асинхронный блок
private func readOxygrnSaturation(){
dispatchGroup.enter()
let quantityType = HKObjectType.quantityType(forIdentifier: .oxygenSaturation)!
let sampleQuery = HKSampleQuery.init(sampleType: quantityType,
predicate: nil,
limit: HKObjectQueryNoLimit,
sortDescriptors: nil,
resultsHandler: { (query, results, error) in
guard let samples = results as? [HKQuantitySample] else {
print(error!)
return
}
for sample in samples {
let mSample = sample.quantity.doubleValue(for: HKUnit(from: "%"))
self.oxygenSaturation.append(HealthData(unit: "%", startDate: self.dateFormatter.string(from: sample.startDate) , endDate: self.dateFormatter.string(from: sample.endDate), value: mSample))
}
self.dispatchGroup.leave()
})
self.healthStore .execute(sampleQuery)
}