2011-09-15 4 views
0

非常に機密性の高いコアデータを扱うリロードメソッドがあり、これを実装するにはメソッドを並行して実行できないようにします。セレクタへのアクセスはタッチジェスチャごとに一度だけです

これを実装する簡単な方法はありますか?

更新

多分それは別の問題です。

私はピンチジェスチャーをしています。ユーザーがこのジェスチャーを行っているときに、私はメソッドを一度しか実行しません!

しかし、iOSシミュレータで今シミュレートしている場合、最小のピンチジェスチャが認識され、ユーザがこのピンチジェスチャを保持している限り、メソッドの実行が開始されます。

これはデフォルトの使用ですか?!?!?どのように私はそれを編集することができます、メソッドは、ユーザーがこのジェスチャーを保持している時間とは無関係にピンチジェスチャーごとに一度だけ起動されます。

+4

ピンチジェスチャーは、連続的なジェスチャーです。アクションメソッドの中で、ジェスチャが始まるとすぐにロジックをやりたい場合や、 'UIGestureRecognizerEnded'が行うときにジェスチャレコグナイザの' state'プロパティ(あなたにパラメータとして渡されます)が 'UIGestureRecognizerBegan'に設定されているかどうか確認できますジェスチャーが行われたときのいくつかの論理。 – albertamg

+1

Ahh typo ...私はもちろん 'UIGestureRecognizerStateBegan'と' UIGestureRecognizerStateEnded'を意味しました。時々私はStackOverflowが私のコメントをコンパイルしないと思う... – albertamg

答えて

-1

andi1984、もちろん

を、あなたは、この方法が唯一のメインスレッドで実行することを必要とする可能性があります。この例のように:それはあなたのアクションメソッドを複数回呼び出しますので

- (void) sensitiveMethod { 

    // If necessary, rethrow on the main queue. 
    if (!NSThread.isMainThread) { 

     [[NSOperationQueue mainQueue] addOperationWithBlock: ^{ 

      [self sensitiveMethod]; 
     }]; 
     return; 
    } 

    // body of your sensitive method here. 

} // sensitiveMethod 

アンドリュー

関連する問題