iPhone, як скасувати зупинку виконання


74

У своєму додатку для iPhone я використовую таку функцію, щоб щось робити після деякої затримки

- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;

Чи є спосіб скасувати цей perforSelector і припинити щось робити після затримки?

Відповіді:


181
[NSObject cancelPreviousPerformRequestsWithTarget:yourTarget selector:aSelector object: anArgument];

1
Чи є якийсь варіант для швидкого?
morroko

2

Я вважав, що людям може бути корисно побачити якийсь фактичний код, тож ось два, які я використовую для зупинки звуків та проведення, коли переходжу на інший екран.

- (void)handleSwipeNext {

    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(handleSwipeNext) object:nil];

    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(playPromptAndTarget) object:nil];

// do some swipe handling stuff
}

2

Версія Swift 4.0:

NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(yourFunc), object: nil)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.