2011-01-20 3 views
0

私は約20種類のタイマーを使用する必要があるという点でアプリケーションを作成しています。NSTimerの問題 - 単一の機能を使用して異なるタイマーを停止する

しかし、すべてのタイマーは、実行時にいくつかの関数を呼び出すことで作成されます。

すべてのタイマーのタイマー間隔が異なる可能性があり、すべてのタイマーに1分ごとに1ずつ減少する異なるカウンターがあります。

カウンタが0になると、タイマーが停止します。しかし、私のアプリケーションでは、すべてのタイマーが異なるカウンター値を持っているので、その時間間隔で単一の関数を使用して異なるタイマーを停止したいと考えています。

異なるタイマーを作成することができ、それぞれのタイマー機能にセレクター値を提供することで、タイマーを停止できます。一度に実行されているタイマーの数がわからない1つのタイマーを一度に停止すると、すべてのタイマーが停止し、機能が正しく表示されません。

どのようなロジックやサンプルを提供することで私を助けてください異なる時間間隔で単一の機能を使用して複数のタイマーを停止する方法。私はあなたのソフトウェアの設計を再考したいかもしれないと思う事前

答えて

0

感謝。あなたは通常どおりメソッドを呼び出すことができます。各メソッドの最後に

[self method]; 

そして、次のようにします。

[self performSelector:@selector(method) withObject:nil afterDelay:(1000)]; 

これは、ループを作成します。その後、整数をインクリメントして、そのカウンタが0になったら何か他のことをすることができます。コードをもっと効果的に管理することができます。状況によってはタイマーが必要な場合もありますが、これは使用する予定の20タイマーよりも効率的です。

+0

これはあなたが正しい方法ですが、1分後にカウンタの値を減らす必要があり、その間に値が変化した場合は残りの時間を追加することによってカウンタ値が増加します。私は毎分カウンターを増やしたり減らしたりすることができないので、これは適切な方法ではありません。 –

関連する問題