Как проверить, есть ли PerformSelector: ожидающий выполнения?

В моем приложении для iPhone у меня есть несколько мест, где я могу выполнить

[object performSelector: withObject: afterDelay:]

вызов. Все ведут к одному и тому же методу. Теперь в этом методе я хочу выполнить некоторый код только при его последнем вызове. Если бы это было первое, я мог бы просто выполнить [NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector (thisMethod) object: nil] и убедиться, что он вызывается один раз.

Но есть ли способ узнать, есть ли какие-либо другие вызовы методов, ожидающие выполнения?

Я мог бы использовать в этом классе счетчик, который бы увеличивал каждый раз, когда устанавливаю выполнение после задержки, затем уменьшаю его в начале каждого вызова и выполняю код только в том случае, если этот счетчик обнулен. Но мне интересно, является ли это наилучшим / приемлемым подходом ...

7
задан kender 5 October 2011 в 15:53
поделиться