2011-10-12 19 views
3

与えられたオブジェクトのperformSelector:withObject:afterDelay:が呼び出された(呼び出されるように登録されている)かどうかを判断する方法があるかどうかを知りたいです。 (私はcancelPreviousPerformRequestsWithTarget:selector:object:を使用し、performSelector:withObject:afterDelay:を再度呼び出すことができましたが、別の方法があるかどうかを知りたいと思っています)。は、performSelector:withObject:afterDelay:が登録されているかどうかを確認する方法はありますか?

おかげ

+0

可能重複[performSelectorがありますかどうかを確認する方法:?実行されるのを待っているが(http://stackoverflow.com/questions/7659584/how-to-check-if-theres-a-performselector - 実行待ち) –

答えて

2

と呼ばれているセレクタが複数回安全に呼び出すことができることを確認するだろう行うための最善のこと。

たとえば、ターゲットオブジェクトにフラグを使用して、メソッドが既に呼び出されているかどうかを追跡します。

-targetSelector: (id) param 
{ 
    if (!hasBeenRun) // hasBeenRun is a boolean intance variable 
    { 
     hasBeenRun = true; 
     // other stuff 
    } 
} 
+0

あなたの答えをお寄せいただきありがとうございました。 – Vassilis

関連する問題