2015-01-24 17 views
0

Я отправил Setting up HKObserverQuery using Swift несколько дней назад.Получение результатов от HKObserverQuery

Мне также интересно, если есть способ получить значение самой последней точки данных, которая была добавлена ​​в HealthKit с использованием HKObserverQuery, или просто сообщит вам, что добавлена ​​новая точка данных, но вам все равно придется запросить его снова, используя HKSampleQuery, чтобы получить значение.

ответ

0

HKObserverQuery в первую очередь уведомляет, был ли тип образца обновлено или нет. Для получения данных вам необходимо написать свои соответствующие запросы (например, HKSampleQuery или HKAnchoredObjectQuery) в блоке или закрытии обработчика обновлений. Одна вещь, о которой вам следует позаботиться, - это предикат, предоставляемый наблюдателю, поскольку он определяет, как долго он будет наблюдать за изменениями. Дата окончания должна быть в будущем, чтобы, если есть какие-либо изменения в любых данных, она уведомляется, она определяет, до какого времени ваш наблюдатель будет следить за изменениями. Если вам нужны последние образцы, попробуйте использовать HKAnchoredObjectQuery. Перейдите к определению HKObserverQuery. Старайтесь не устанавливать дату окончания более одного-двух дней. Надеюсь это поможет. Предикатная часть важна и немного отличается от вашего предиката для выборочных запросов. Обязательно вызовите ObserverQueryCompletionHandler, если вы включите обновления фона.

Смежные вопросы