速度:iOS使用NSPredicate filterUsingPredicate与for循环

时间:2013-07-26 17:56:00

标签: ios performance filter nsmutablearray nspredicate

我需要过滤一个自定义对象的NSMutableArray,并想知道在速度/运行时方面,或者它们是否几乎相同时,其中一个是否比另一个更好:

(1)使用[array filterUsingPredicate:predicate],

(2)使用for循环迭代所有元素并检查它们是否满足标准。

我只是问这个,因为我认为每个对象必须满足的标准可能会有所不同,因此使谓词变得棘手。

提前致谢!

1 个答案:

答案 0 :(得分:2)

在一般情况下,我不相信这两种技术都能更快地发挥作用。这两种技术都会对循环或谓词的编写方式以及数据的外观很敏感。如果数组相对于您的过滤条件没有排序,那么它们都必须单步执行所有元素。

使用能够为您提供更清晰,更易维护的代码的代码,如果您发现存在实际的性能瓶颈,请考虑尝试将其与其他方法进行比较。