iOS之NSPredicate

使用NSPredicate对NSArray进行过滤

过滤数组是经常要做的事情,最原始的方法是使用for循环进行过滤,每循环一次然后进行if判断。这样效率会很低,而且代码会很臃肿。iOS原生NSPredicate类给我们已经封装好了过滤数组的方法,大家一起来看一下代码吧。(如果你已经知道了,请无视~)

需求:假设一个数组中存放着若干个实体类:A

A中有id,name,age这三个属性,现在需要拿到age为18的数据。

代码实现:

NSPredicate*pred = [NSPredicatepredicateWithFormat:@"SELF.age = %@",@"18"];

NSArray *array_18 = [arrayfilteredArrayUsingPredicate:pred];

array_18就是age为18的数据了。

如果是要知道age>18的数据,则改成:

[NSPredicatepredicateWithFormat:@"SELF.age.intValue > 18"];

是不是很简单?就两句话搞定。

其实这只是NSPredicate的一个很小的功能,他的强大超乎想象,就像Oracle中的SQL查询语句一样强大。

其他的功能就不再多赘述了,别人已经总结好啦,上链接:http://blog.csdn.net/ztp800201/article/details/8116081

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容