循环完成后,我需要获取最终的 activeTime 值。
下面的代码运行一个循环,该循环又多次调用一个块(它运行一个异步进程)。如果在此期间发生超过 10 个步骤,则每个循环将增加 activeTime。
最终我想调用这段代码并让它返回 activeTime 的最终值。
我正在考虑completionhandler
但不确定。
有人可以建议我如何实现这一目标吗?
__block NSInteger activeTime = 0;
for (NSDate *date = [self startDateOfToday];
[date compare:[NSDate date]] == NSOrderedAscending;
date = [date dateByAddingTimeInterval:10])
{
NSDate *rangeStart = date;
NSDate *rangeEnd = [date dateByAddingTimeInterval:10];
[stepCounter queryStepCountStartingFrom:rangeStart
to:rangeEnd
toQueue:[NSOperationQueue mainQueue]
withHandler:^(NSInteger numberOfSteps, NSError *error) {
if (numberOfSteps > 10) {
activeTime=activeTime+10;
}
NSLog(@"Steps = %ld; Time = %ld",(long)numberOfSteps, (long)activeTime);
}];
}