私は Xcode4 で作業しており、整理目的で 3 つの異なる NSTimer を使用していたプロジェクトで作業していますが、タイマーは名前を除いて同一であることに気付きました。そのため、3 つのタイマーすべてを 1 つにマージするのは簡単です。私のプロジェクトでは、コードを分割する 3 つの別々のタイマーと、すべてのコードを含む 1 つのタイマーのどちらをコーディングするのがよいでしょうか?
ありがとう!
複数のタイマーが互いに同期していない場合、複数のタイマーを使用するとエネルギーに大きな影響を与える可能性があります。最新の CPU は可能な限りスリープ状態にしようとします。一度に数ミリ秒でも定期的にスリープ状態にできるようにすることで、バッテリー寿命を大幅に改善できます。ほぼ同時にオフになるタイマーがある場合、システムはスリープする機会が少なくなります。WWDC 2013のセッション 704 (効率的な OS X アプリの構築) とセッション 712 (エネルギーのベスト プラクティス) をお勧めします。このセッションでは、これについて詳しく説明し、コードを改善する方法について説明しています。Apple は最近、タイマーの管理方法を改善し、開発者がタイマーをより適切にバッチ処理できるようにするために多大な努力を払ってきました。
これは、コードに大幅な複雑さを追加する理由ではありません。@HotLicks と @GerdK は、コードの単純さが他の問題よりも優先されることが多いことは正しいですが、特に最新の CPU と高頻度タイマーでは、コストを無視すべきではありません。
最新の OS でコードを実際に再構築することなく、バッチ タイマーの利点を得るのに役立つ新しい NSTimer オプションがいくつかあることに注意してください。詳細については、上記のビデオを参照してください (まだ NDA に基づいているため、ここでは詳細を説明できません)。
どちらの方法でも、コードが理解しやすくなります。