Выполняются ли запросы 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)
        
    }

0 ответов

Другие вопросы по тегам