• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何在 iOS 中使用 updateHandler 和 HKAnchoredObjectQuery?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:36:09 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

在我的应用程序中,我想使用 HKAnchoredObjectQuery 获取 HealthKit 数据。我编写了返回添加和删除数据的代码,但我想用 HKAnchoredObjectQuery 设置 UpdateHandler 所以,当在 HealthKit 中添加/删除数据时,我会在 app.xml 中收到通知。

-(void)AnchoredObjectQueryTest
{
    HKSampleType *sampleType1 =
    [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierBodyMass];

    HKAnchoredObjectQuery *query =
    [[HKAnchoredObjectQuery alloc]
     initWithType:sampleType1
     predicate:nil
     anchor: HKAnchoredObjectQueryNoAnchor
     limit:HKObjectQueryNoLimit
     resultsHandler:^(HKAnchoredObjectQuery * query,
                      NSArray<HKSample *> * sampleObjects,
                      NSArray<HKDeletedObject *> * deletedObjects,
                      HKQueryAnchor *newAnchor,
                      NSError * error) {

         if (error) {

             // Perform proper error handling here...
             NSLog(@"*** An error occured while performing the anchored object query. %@ ***",
                   error.localizedDescription);

             abort();
         }

       anchor = newAnchor;


         for (HKQuantitySample *sample in sampleObjects) {
             NSLog(@"Add : %@", sample);
         }

         for (HKDeletedObject *sample in deletedObjects) {
              NSLog(@"Delete : %@", sample);
         }


     }];


     [healthStore executeQuery:query];
}



Best Answer-推荐答案


实例化并执行您的 HKAnchoredObjectQuery,它将运行一次,回调到 handler 参数中指定的 block 。

实例化查询并在查询上设置updateHandler 属性,然后执行查询。查询像以前一样第一次运行,回调您在实例化时提供的处理程序 参数;当结果被添加或删除到存储并回调到您的 updateHandler 时,查询随后运行。

在我的例子中,我对 handler 参数和 updateHandler 属性使用相同的 block 。

关于ios - 如何在 iOS 中使用 updateHandler 和 HKAnchoredObjectQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33342864/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap