在某个视图中,我希望在触发时间基于 NSTimeIntervals 数组(我将其保存为 NSArray 保存双值)时触发某个方法。
所以我有一个根据相关时间执行相关操作的方法,并且在这个方法中我调用相同的方法(递归)在下一个预定时间再次触发:
-(void) actionMethod:(int)someDataINeed {
//do something and then...
if (someDataINeed == someDefinitionIHaveToBreakTheLoop) {
return;
}
double nextFire = [self aMethodThatCalculatesTheNextFiringTime];
NSNumber * nextDataINeed = [NSNumber numberWithInt:someDataINeed+1];
NSTimer * aTimer = [NSTimer scheduledTimerWithTimeInterval:nextFire
target:self
selector:@selector(actionMethod:)
userInfo:nextDataINeed
repeats:NO];
}
嗯......它不起作用(如果它起作用,我想我不会问它......)。当我 NSLog 它时,似乎时间根本没有运行,并且计时器在某种循环中被调用,而不是根据我定义的时间“被触发”。nextFire 双数据是正确的(根据我的定义)。
如果我错了,如果有人能指导我如何执行此类操作,我将不胜感激。
如果我做对了,但只是写错了,那么抓住我的“错误”的眼睛也会受到赞赏......