【发布时间】:2012-08-12 13:21:27
【问题描述】:
在某个视图中,我希望在触发时间基于 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 双数据是正确的(根据我的定义)。
如果我错了,如果有人能指导我如何执行此类操作,我将不胜感激。
如果我做对了,但只是写错了,我也很感激能抓住我的“错误”……
【问题讨论】:
标签: ios nstimer nstimeinterval