我需要过滤一个自定义对象的NSMutableArray,并想知道在速度/运行时方面,或者它们是否几乎相同时,其中一个是否比另一个更好:
(1)使用[array filterUsingPredicate:predicate],
或
(2)使用for循环迭代所有元素并检查它们是否满足标准。
我只是问这个,因为我认为每个对象必须满足的标准可能会有所不同,因此使谓词变得棘手。
提前致谢!
答案 0 :(得分:2)
在一般情况下,我不相信这两种技术都能更快地发挥作用。这两种技术都会对循环或谓词的编写方式以及数据的外观很敏感。如果数组相对于您的过滤条件没有排序,那么它们都必须单步执行所有元素。
使用能够为您提供更清晰,更易维护的代码的代码,如果您发现存在实际的性能瓶颈,请考虑尝试将其与其他方法进行比较。