Ответ 1
NSTimer
-fire
, [timer fire];
- это то, что вы ищете.
Это приведет к срабатыванию/немедленному вызову таймера, отменяющего задержку времени.
Мне нужно вызвать метод, когда начнется мое приложение, а затем вызовет один и тот же метод каждые 5 секунд.
Мой код довольно прост:
// Call the method right away
[self updatestuff:nil]
// Set up a timer so the method is called every 5 seconds
timer = [NSTimer scheduledTimerWithTimeInterval: 5
target: self
selector: @selector(updatestuff:)
userInfo: nil
repeats: YES];
Есть ли опция для таймера, чтобы он срабатывал сразу, а затем каждые 5 секунд?
NSTimer
-fire
, [timer fire];
- это то, что вы ищете.
Это приведет к срабатыванию/немедленному вызову таймера, отменяющего задержку времени.
Вы не можете запланировать таймер и немедленно запустить событие в одной строке кода. Таким образом, вы должны сделать это в двух строках кода.
Сначала планируйте таймер, а затем сразу вызывайте "огонь" на свой таймер:
timer = [NSTimer scheduledTimerWithTimeInterval: 5
target: self
selector: @selector(updatestuff:)
userInfo: nil
repeats: YES];
[timer fire];
Когда вызывается пожар, временной интервал, который ваш таймер ожидает, будет reset, потому что он просто запустился, а затем продолжит выполнение после этого в указанный интервал - в этом случае каждые 5 секунд.
Вы можете инициализировать таймер и запустить его в одной строке:
[(checkStatusTimer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(checkStatusTimerTick:) userInfo:nil repeats:YES]) fire];