1

HealthKit 的 HKAnchoredObjectQuery 在 iOS 9.0 中不返回已删除的对象。即使我删除一个对象然后添加一个对象,删除的对象数组始终为空(第一次启动应用程序时除外)。

但是相同的代码在 iOS 9.2.1 上运行良好。每当将对象添加到健康应用程序并触发观察者查询时,都会返回已删除的对象。

这是 iOS 9.2.1 中的一些新更新吗?在这个版本中解决了删除对象的错误?

我找不到任何证实这一点的 Apple 文档。

编辑:触发查询的代码是

NSPredicate* predicate = [HKQuery predicateForSamplesWithStartDate: [NSDate dateWithTimeIntervalSinceNow:-172800.0]                                                                endDate:nil                                                                 options:0];

 HKAnchoredObjectQuery *query =
    [[HKAnchoredObjectQuery alloc]
     initWithType:sampleType
     predicate:predicate
     anchor:anchor
     limit:HKObjectQueryNoLimit
     resultsHandler:^(HKAnchoredObjectQuery * _Nonnull query,
                      NSArray<__kindof HKSample *> * _Nullable sampleObjects,
                      NSArray<HKDeletedObject *> * _Nullable deletedObjects,
                      HKQueryAnchor * _Nullable newAnchor,
                      NSError * _Nullable error) {
}];
4

1 回答 1

0

这是一个错误,是 iOS 9.0 中的错误,已在 9.1 中修复。startDate您可以通过不指定限制orendDate的谓词来解决此问题HKSample

于 2016-02-29T17:00:37.670 回答