3

カスタムオブジェクトの NSMutableArray をフィルタリングする必要があり、次のいずれかが速度/ランタイムの点で他のものよりも優れているかどうか、またはそれらが実質的に同じかどうかについて疑問に思っていました:

(1) [配列 filterUsingPredicate:predicate] を使用して、

また

(2)forループを使用してすべての要素を繰り返し処理し、それらが基準を満たしているかどうかを確認します。

私がこれを尋ねるのは、各オブジェクトが満たさなければならない基準が異なる可能性があり、述語を作成するのが難しいと思うからです。

前もって感謝します!

4

1 に答える 1

2

一般的なケースでは、どちらの手法も有意に高速であるとは信じていません。どちらの手法も、ルー​​プまたは述語がどのように記述されているか、およびデータがどのように見えるかに敏感です。配列がフィルター基準に関してソートされていない場合、どちらもすべての要素をステップスルーする必要があります。

コードがよりクリーンで保守しやすい方法を使用し、実際にパフォーマンスのボトルネックがあることがわかった場合は、それを試して他の方法と比較することを検討してください。

于 2013-07-26T18:05:29.270 に答える