#iphone #objective-c #ios #nstimer
#iPhone #objective-c #iOS #nstimer
Вопрос:
Как мне настроить NSTimer для запуска один раз в будущем (скажем, через 30 секунд). До сих пор мне удалось настроить его только так, чтобы он срабатывал немедленно, а затем с интервалами.
Ответ №1:
Метод, который вы хотите использовать, это:
(NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval) seconds target:(id) target selector:(SEL) aSelector userInfo:(id) userInfo repeats:(BOOL) repeats
с repeats == NO
аргументами и seconds == 30
. Это создаст таймер и запланирует его. Он будет запускаться только один раз, через 30 секунд (и не сразу).
Ответ №2:
Вы можете установить таймер с вашей будущей датой и установить повторы на НЕТ
(NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval) seconds
target:(id) target
selector:(SEL) aSelector
userInfo:(id) userInfo
repeats:(BOOL) repeats
Ответ №3:
Используйте этот метод класса для планирования таймера.
(NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds
target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo
repeats:(BOOL)repeats
Параметры
секунд
Количество секунд между срабатываниями таймера. Если количество секунд меньше или равно 0.0, этот метод вместо этого выбирает неотрицательное значение 0,1 миллисекунды.
цель
Объект, на который будет отправлено сообщение, указанное aSelector при срабатывании таймера. Целевой объект сохраняется таймером и освобождается, когда таймер становится недействительным.
aSelector
Сообщение, которое нужно отправить цели при срабатывании таймера. Селектор должен иметь следующую подпись:
— (void)timerFireMethod:(NSTimer *)Таймер
Таймер передает себя в качестве аргумента этому методу.
Пользовательская информация
Информация о пользователе для таймера. Указанный вами объект сохраняется таймером и освобождается, когда таймер становится недействительным. Этот параметр может быть равен нулю.
повторяется
Если ДА, таймер будет повторно перепланировать себя, пока не станет недействительным. Если НЕТ, таймер будет признан недействительным после его срабатывания.
Пример
[NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(targetMethod:)
userInfo:[self userInfo]
repeats:NO];
Таймер автоматически запускается циклом выполнения через 2 секунды. Темы программирования таймера