Я действительно хочу, чтобы результаты выполнялись с HKSampleQuery
. Но я не могу получить результаты сразу после выполнения запроса.Как использовать образец набора образцов для здоровья прогрессивными способами
Мой случай ниже (код обработки ошибок удаляется):
let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: false)
// get the latest step count sample
let stepSampleQuery: HKSampleQuery = HKSampleQuery(sampleType: (stepCountQty)!,
predicate: nil,
limit: 1,
sortDescriptors: [sortDescriptor]) {
(query, results, error) -> Void in
if let result = results as? [HKQuantitySample] {
// result[0] is the sample what I want
self.lastStepDate = result[0].startDate
print("readLastStep: ", self.lastStepDate)
}
}
self.healthStore.executeQuery(query)
// now, I want to use the "self.lastStepDate"
// But, I cannot get the appropriate value of the variable.
Я не думаю, что код должен выполняться постепенно. Когда resultHandler
из HKSampleQuery
бежать? Я действительно хочу, чтобы код обработчика запускался, прежде чем использовать результаты запроса.
Но, я буду использовать переменную в запросе наблюдателя, который будет выполнен в фоновом режиме. Я знаю, что HKSampleQuery не может выполняться в фоновом режиме. Если я написал код о запросе наблюдателя в пространстве 'self.doSomethingWithLastStepDate', я думаю, что запрос наблюдателя не может использоваться в фоновом режиме –
Я хочу, чтобы мое приложение запускалось в фоновом режиме. Запрос наблюдателя в моем приложении обнаруживает новые образцы в магазине HealthKit даже в фоновом режиме. Когда запрос наблюдателя познакомился с некоторыми образцами, мое приложение должно сравнить дату последнего шага и текущую дату. –
Ничего не мешает выполнению запросов, когда ваше приложение находится в фоновом режиме. – Allan