gpt4 book ai didi

watchos-2 - HKAnchoredObjectQuery 结果处理程序在初始结果后不会触发

转载 作者:行者123 更新时间:2023-12-03 06:53:30 25 4
gpt4 key购买 nike

我们的健身应用程序使用三个锚定对象查询来传输心率、活跃卡路里和距离;它一直工作得很好,直到几周前我们开始优化应用程序的其余性能,以提高响应速度并查询过去锻炼的样本。我们相信我们已经将查询恢复到以前的方式,并且我们有非常相似的代码,但用 Swift 编写,用于单独的健身应用程序工作正常,但这些 HKAnchoredObjectQuery 在处理初始结果后不会返回进一步的结果(是的,锻炼类(class)正在进行中)。我们有点难住了。任何人都可以看一下并提出我们可能出错的地方吗?

谢谢!

以下是心率查询的示例:

- (HKQuery*) createHeartRateStreamingQuery: (NSDate *) workoutStartDate {  
NSPredicate * predicate = [HKQuery predicateForSamplesWithStartDate:workoutStartDate endDate:nil options:HKQueryOptionNone];

HKQueryAnchor *anchor = HKAnchoredObjectQueryNoAnchor;
if (_HRAnchor) {
anchor = _HRAnchor;
}

HKQuantityType * quantityType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierHeartRate];

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

if (error) {
NSLog(@"*** %s An error occured while performing the heartrate anchored object query. %@ ***",
__PRETTY_FUNCTION__, error.localizedDescription);
abort();
} else {
if (newAnchor) {
_HRAnchor = newAnchor;
NSLog(@"*** %s: %i samples returned for startDate %@ ***", __PRETTY_FUNCTION__, sampleObjects.count, workoutStartDate);
for (HKQuantitySample *sample in sampleObjects) {
[self updateHeartRate:sample];
}

for (HKDeletedObject *sample in deletedObjects) {
// [self removeHRSamples: sample]; //not using this for now
}

}
}
}];
return query;
}
- (void) updateHeartRate: (HKQuantitySample *) HRSample {
NSLog(@"%s: %@", __PRETTY_FUNCTION__, HRSample);
[_workoutHRSamplesArray addObject: HRSample];
}

最佳答案

为了使用 HKAnchoredObjectQuery 流式传输示例,您必须在查询上设置 updateHandler 属性。您提供给初始化程序的结果处理程序仅针对与您的查询匹配的现有示例运行一次。

关于watchos-2 - HKAnchoredObjectQuery 结果处理程序在初始结果后不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com