ユーザーがまとめたタスクのリストをまとめて実行しようとしています。これらのタスク リストは、数百または数千のアイテムになる可能性があります。
私の知る限り、最も簡単で明白な方法は、配列を作成してから反復処理することです。
NSArray *arrayOfTasks = .... init and fill with thousands of tasks
for (id *eachTask in arrayOfTasks)
{
if ( eachTask && [eachTask respondsToSelector:@selector(execute)] ) [eachTask execute];
}
デスクトップの場合は問題ないかもしれませんが、iPhone や iPad の場合は問題になる可能性があります。これは良い方法ですか、それとも同じことをより速く達成する方法はありますか?
msg_send がどのくらいのオーバーヘッドが発生するかについて質問している理由は、単純な C 実装も同様に実行できるからです。たとえば、リンクされたリストをまとめて、ブロックを使用して次のタスクを処理できます。それから何か得るものはありますか?