gpt4 book ai didi

ios - 在 iOS 上高效解析 HealthKit 的 HKSampleQuery 结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:12 30 4
gpt4 key购买 nike

我的应用程序使用 HealthKit 框架来检索用户健康数据。我想从 HealthKit 获得大约 25 个不同的数据点。

为此,我目前在示例查询的完成处理程序内的 for-loop 中进行了 25 次调用。 有没有什么方法可以合并结果,或者更有效地执行此过程?

据我所知,这就是我必须做的(见下面的代码)。提前谢谢你。

NSDate *startDate, *endDate;

// Use the sample type for step count
HKSampleType *sampleType = [HKSampleType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];

// Create a predicate to set start/end date bounds of the query
NSPredicate *predicate = [HKQuery predicateForSamplesWithStartDate:startDate endDate:endDate options:HKQueryOptionStrictStartDate];

// Create a sort descriptor for sorting by start date
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:HKSampleSortIdentifierStartDate ascending:YES];

HKSampleQuery *sampleQuery = [[HKSampleQuery alloc] initWithSampleType:sampleType predicate:predicate limit:HKObjectQueryNoLimit sortDescriptors:@[sortDescriptor] resultsHandler:^(HKSampleQuery *query, NSArray *results, NSError *error) {
if (!error && results) {
for (HKQuantitySample *samples in results) {
// your code here
}
}
}];

// Execute the query
[healthStore executeQuery:sampleQuery];

最佳答案

您应该并行执行查询。这使 HealthKit 能够高效地执行您的查询。如果您这样做,HealthKit 会为您进行优化。执行此操作的最优雅和可读的方法可能是循环。但是写 25 行也是一样的。

您无需执行任何操作即可将查询放入后台队列。 HealthKit 会为您做这件事。

有时您会收到 25 次回电。

关于ios - 在 iOS 上高效解析 HealthKit 的 HKSampleQuery 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300146/

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