2011-07-28 7 views
5

イム私は、私は1つを停止することができますどのように把握しようと、このセレクタの実行を停止するには?セレクタ</p> <p>の実行を停止する方法を理解しようとしている

  [self performSelector:@selector(vibe)]; 

しかし、イムを行うことによって1を開始することができます。

ご協力いただけると助かります。ありがとうございます!

+1

[iPhoneを停止する方法をキャンセルするperformSelector](http://stackoverflow.com/questions/3649273/iphone-how-to-cancel-stop-performselector) – Caleb

答えて

9

performSelector:方法は、それをキャンセルすることができないので、受信機に直接セレクタメッセージを送ることと等価です。

[self performSelector:@selector(vibe)]; 
[self vibe]; 

cancelPreviousPerformRequestsWithTarget:(および類似の)方法のみすぐに実行されていないセレクタメッセージを取り消すことができる:即ち、これらの2行は同じ効果を有します。このようなメッセージは、performSelector:withObject:afterDelay:(およびそれに類似した)メソッドを使用して送信できます。

詳細については、AppleのスレッドプログラミングガイドのRun Loop Managementセクションの表3-2を参照してください。

7
[NSObject cancelPreviousPerformRequestsWithTarget:self]; 
// or 
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(vibe) object:nil]; 
1

それはすぐに明らかではないのですが、私は次のように動作するはずと信じて:

[NSObject cancelPreviousPerformRequestsWithTarget:self]; 
関連する問題