我不明白 Objective-C 循环系统是如何工作的。我有从 Health Kit 执行查询的功能(希望名称是正确的,而不是签入代码)。当我意识到函数在查询完成之前传递返回值时,我大吃一惊。
__block bool allBeckuped = true;
HKSampleQuery *mySampleQuery = [[HKSampleQuery alloc] initWithSampleType:mySampleType
predicate:myPredicate
limit:HKObjectQueryNoLimit
sortDescriptors:@[mySortDescriptor]
resultsHandler:^(HKSampleQuery *query, NSArray *results, NSError *error) {
if(!error && results)
{
for(HKQuantitySample *samples in results)///main hk loop
{
allBeckuped = false;
NSLog(@"1");
}
}
}];//end of query
[healthStore executeQuery:mySampleQuery];
NSLog(@"2");
return allBeckuped;
我正在尝试检查是否有任何新数据,但我不知道在哪里设置条件,因为 nslog2 在 nslog 1 之前被调用。
我应该谷歌搜索任何词吗?