У меня есть программа, в которой я хочу закодировать таймер, который проверяет, свободен ли пользователь или нет. Для этого я написал следующий код:NSTimer не работает
if (!idleTimer) {
NSLog(@"make");
idleTimer=[[NSTimer alloc]initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:10.0]interval:10 target:self selector:@selector(idleTimerExceeded) userInfo:nil repeats:NO];
NSLog(@"madetimer with: %f, %@", idleTimer.timeInterval, idleTimer.fireDate);
}else {
NSLog(@"no reset timer: %f", idleTimer.timeInterval);
if (fabs([idleTimer.fireDate timeIntervalSinceNow]) < 9) {
NSLog(@"reset");
[idleTimer setFireDate:[NSDate dateWithTimeIntervalSinceNow:10]];
}
}
Но почему-то мои журналы показывают, что интервал всегда равен 0,0000. Это означает, что здесь что-то не так. Кто-нибудь может мне помочь?
Дело в том: Это проверка метод если пользователь простаивает или нет. Как только будет запущен метод nextResponder (UIResponder *), этот метод получает вызов, который затем либо создает новый таймер, если он еще не существует, либо проверяет, не простаивает ли пользователь более 9 секунд. Если это так, выполняется другой метод. – iJatrat
я бы разделить его. и просто планируйте таймер в той же точке, что и вы. –