菜鸟教程小白 发表于 2022-12-12 09:36:09

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


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

<pre><code>-(void)AnchoredObjectQueryTest
{
    HKSampleType *sampleType1 =
    ;

    HKAnchoredObjectQuery *query =
    [
   initWithType:sampleType1
   predicate:nil
   anchor: HKAnchoredObjectQueryNoAnchor
   limit:HKObjectQueryNoLimit
   resultsHandler:^(HKAnchoredObjectQuery * query,
                      NSArray&lt;HKSample *&gt; * sampleObjects,
                      NSArray&lt;HKDeletedObject *&gt; * deletedObjects,
                      HKQueryAnchor *newAnchor,
                      NSError * error) {

         if (error) {

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

             abort();
         }

       anchor = newAnchor;


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

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


   }];


   ;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>实例化并执行您的 HKAnchoredObjectQuery,它将运行一次,回调到 <em>handler</em> <strong>参数</strong>中指定的 block 。</p>

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

<p>在我的例子中,我对 handler 参数和 updateHandler 属性使用相同的 block 。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在 iOS 中使用 updateHandler 和 HKAnchoredObjectQuery?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/33342864/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/33342864/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在 iOS 中使用 updateHandler 和 HKAnchoredObjectQuery?