Как отменить метод, зарегистрированный с помощью [performSelector: с помощью object: afterDelay:]?

#iphone #objective-c #ipad

#iPhone #objective-c #iPad

Вопрос:

Моя проблема в том, что в какой-то момент в моем приложении я вызываю [performSelector: withObject: afterDelay:] , но во время задержки, которая может составлять до 1 секунды, происходит несколько событий, которые решают, следует или не следует вызывать отложенный метод, однако после регистрации селектор нельзя отменить, поэтому он будет вызван в любом случае. Я пытался установить флаг, но из-за того, что [performSelector: withObject: afterDelay:] может вызываться несколько раз в секунду с использованием одного флага, не удается.

Я думаю, мне каким-то образом нужно иметь возможность остановить конкретный метод до его вызова. Возможно ли это вообще?

Ответ №1:

cancelPreviousPerformRequestsWithTarget: Метод удалит любые подобные операции выполнения, поставленные в очередь.

Комментарии:

1. Похоже, это ИМЕННО то, что мне нужно, попробую прямо сейчас. Спасибо!