从HKObserverQuery获取结果

时间:2015-01-24 16:46:53

标签: ios swift health-kit hksamplequery

我几天前发布了Setting up HKObserverQuery using Swift

我还想知道,如果有办法获取刚刚使用HKObserverQuery添加到HealthKit中的最新数据点的值,或者只是让它知道添加了新的数据点,但是您仍然需要使用HKSampleQuery再次查询它来检索值。

2 个答案:

答案 0 :(得分:0)

我正在寻找相同的答案并找到了另一篇文章: Observing changes in HealthKit data using HKObserverQuery

每次获得更新时,您似乎都会执行单独的查询

答案 1 :(得分:0)

HKObserverQuery主要通知样本类型是否已更新。要获取数据,您必须在更新处理程序块或闭包中编写相应的查询(如HKSampleQuery或HKAnchoredObjectQuery)。你需要注意的一件事是提供给observerquery的谓词,因为它定义了观察变化的时间。结束日期必须是将来的,以便如果通知任何数据有变化,它将定义观察者将在何时观察变化。如果您想要最新的样本,请尝试使用HKAnchoredObjectQuery。完成HKObserverQuery的定义。尽量不要将结束日期设置超过一天或两天。希望这可以帮助。谓词部分很重要,与谓词的示例查询略有不同。如果要启用后台更新,请务必调用ObserverQueryCompletionHandler。