СЦЕНАРИЙ Я работаю над приложением, которое должно запускать метод через 5 секунд после нажатия кнопки.iOS: Запустите NSTimer через 5 секунд
КОД Это код, который, как предполагается засчитывать метод controlTimerExpire
через 5 секунд
NSDate *fiveSecondsFromNow = [[NSDate date] dateByAddingTimeInterval:5.0f];
NSTimeInterval timeInterval = [fiveSecondsFromNow timeIntervalSinceNow];
controlTimer = [NSTimer scheduledTimerWithTimeInterval:timeInterval target:self selector:@selector(controlTimerExpire) userInfo:nil repeats:NO];
// I ALSO TRIED THIS; HARDCODING IT LIKE BELOW
controlTimer = [NSTimer scheduledTimerWithTimeInterval:5.0f target:self selector:@selector(controlTimerExpire) userInfo:nil repeats:NO];
ВОПРОСcontrolTimerExpire
уволят сразу же после того, как кнопка прослушиваются. Между нажатием кнопки и стрелкой controlTimerExpire
должно быть 5 секунд.
ВОПРОС Почему этот укол немедленно и не срабатывает через 5 секунд?
ССЫЛКИ То, что я сделал выше, это то, о чем говорят эти ссылки ниже, но это не дает того же результата, что и в ссылках. ЗАЧЕМ?
Set an NSTimer to fire once in the future
How to call a method every x seconds in Objective-C using NSTimer?
Я заслуживаю того, чтобы мой вопрос был отклонен. Извините за смешение ребят. –
BTW. Для этого было бы гораздо проще использовать 'dispatch_after'. Не требуется таймер. Никакого дополнительного метода не требуется. – rmaddy
Не пробовал, но это звучит многообещающе. Спасибо @rmaddy! Вы - бог среди людей. –