В моем приложении для iPhone у меня есть несколько мест, где я могу выполнить
[object performSelector: withObject: afterDelay:]
вызов. Все ведут к одному и тому же методу. Теперь в этом методе я хочу выполнить некоторый код только при его последнем вызове. Если бы это было первое, я мог бы просто выполнить [NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector (thisMethod) object: nil]
и убедиться, что он вызывается один раз.
Но есть ли способ узнать, есть ли какие-либо другие вызовы методов, ожидающие выполнения?
Я мог бы использовать в этом классе счетчик, который бы увеличивал каждый раз, когда устанавливаю выполнение после задержки, затем уменьшаю его в начале каждого вызова и выполняю код только в том случае, если этот счетчик обнулен. Но мне интересно, является ли это наилучшим / приемлемым подходом ...