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

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

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

要么

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

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

提前致谢!

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

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