Я пытаюсь выяснить, как остановить выполнение селектора
Я могу начать с этого
[self performSelector:@selector(vibe)];
Но я пытаюсь понять, как я могу это остановить.
Любая помощь будет очень ценится .. Спасибо!
Метод performSelector: эквивалентен отправке селекторного сообщения непосредственно получателю, поэтому его нельзя отменить.То есть эти две строки имеют одинаковый эффект:
performSelector:
[self performSelector:@selector(vibe)]; [self vibe];
Методы cancelPreviousPerformRequestsWithTarget: (и аналогичные) могут отменить только те сообщения селектора, которые не выполняются немедленно.Вы можете отправить такое сообщение с помощью методов performSelector:withObject:afterDelay: (и аналогичных).
cancelPreviousPerformRequestsWithTarget:
performSelector:withObject:afterDelay:
См. Таблицу 3-2 раздела Управление циклами программирования потоков Apple.Руководство для получения дополнительной информации.
[NSObject cancelPreviousPerformRequestsWithTarget:self]; // or [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(vibe) object:nil];
Это не сразу очевидно, но я считаю, что должно работать следующее:
[NSObject cancelPreviousPerformRequestsWithTarget:self];