Я никогда не видел, чтобы таймер выглядел так сложно. попробуйте это:
написать метод, который проверяет, не занят ли пользователь (скажем, idleChecker)
затем делает таймер повторяемым и вызывает этот метод idleChecker
[NSTimer scheduledTimerWithTimeInterval:.5 target:self selector:@selector(idleChecker) userInfo:nil repeats:YES];
не забудьте объявить метод idleChecker в файле .h
обратите внимание, если вы хотите остановить событие таймера, вам нужно сохранить ссылку на него
NSTimer aTimer = [NSTimer scheduledTimerWithTimeInterval:.5 target:self selector:@selector(idleChecker) userInfo:nil repeats:YES];
затем, чтобы остановить его
[aTimer invalidate];
что касается проверки, запущен ли он, я бы просто вставил туда сообщение nslog, в котором говорилось бы что-то вроде "проверка на простоя пользователя"