我正在尝试弄清楚如何在我的应用运行时启动方法调用。
我已经创建了以下方法,该方法在加载ViewController后启动,但问题是,它运行一次,但从不再运行..
这就是我的代码。
#define kMaxAliveTimeSeconds 5.0
// currently only running the query every 5 seconds for testing
- (void)deviceTimer {
if (!isAliveTimer) {
isAliveTimer = [NSTimer scheduledTimerWithTimeInterval:kMaxAliveTimeSeconds
target:self
selector:@selector(deviceIsAlive)
userInfo:nil
repeats:NO];
}
else {
if (fabs([isAliveTimer.fireDate timeIntervalSinceNow]) < kMaxAliveTimeSeconds-0.5) {
[isAliveTimer setFireDate:[NSDate dateWithTimeIntervalSinceNow:kMaxAliveTimeSeconds]];
}
}
}
- (void)deviceIsAlive {
// do stuff here
}
唯一的东西是deviceIsAlive被调用一次,但之后再也没有。
答案 0 :(得分:2)
在定时器分配语句中设置重复:YES(因此它会自动重复,否则nstimer会在第一次后自动失效)或者在deviceIsAlive函数中分配新的定时器。