博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS筛选出数组中想要的数据(数组中存储的模型)
阅读量:2433 次
发布时间:2019-05-10

本文共 960 字,大约阅读时间需要 3 分钟。

先用一个便于理解的方法, 表达出想要的结果

首先说一下需要的数据

(根据城市的名字, 城市的拼音, 城市的首字母筛选是否有查找的城市)

ZHCity模型    模型中有name(城市名字), pinYin(城市的拼音), pinYinHead(城市首字母)

一个可变的数组(属性): self.resultCities

一个正常的思路

self.resultCities = [NSMutableArray array];        for (ZHCity *city in self.cities)    {        // 城市的name中包含了searchText        // 城市的pinYin中包含了searchText        // 城市的pinYinHead中包含了searchText        if ([city.name containsString:searchText] || [city.pinYin containsString:searchText] || [city.pinYinHead containsString:searchText])        {            [self.resultCities addObject:city];        }    }
下面用一个新知识点解决上面的问题

谓词\过滤器: 利用一定条件从一个数组中过滤出想要的数据

// 这个有点类似sql语句NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains %@ or pinYin contains %@ or pinYinHead contains %@", searchText, searchText, searchText]; // name\pinYin\pinYinHead不是随便写的, 是模型中的属性; contains是包含后面%@这个字符串self.resultCities = [self.cities filteredArrayUsingPredicate:predicate]; // 这个self.resultCities可以是一个不可变数组

转载地址:http://wntmb.baihongyu.com/

你可能感兴趣的文章
纵览全局——SSH
查看>>
纵览全局——Mybatis
查看>>
PC端-中文转拼音后续问题
查看>>
第七章-面向对象技术
查看>>
Mybatis-略识之无
查看>>
ionic 前端 - 汉字转拼音
查看>>
Ionic-与时间有关的故事-localecompare()
查看>>
Logback-spring.xml日志配置
查看>>
[Vue warn]: Property or method "name" is not defined on the instance but referenced during render
查看>>
ts:json串转换成数组
查看>>
String、StringBuffer和StringBuilder的区别
查看>>
java——职责链模式
查看>>
java_选择类排序——简单选择排序
查看>>
java_中介者模式
查看>>
java_备忘录模式
查看>>
多线程——背景了解
查看>>
power designer使Comment与Name相同.txt
查看>>
学习Spring 开发指南------基础语义
查看>>
IE下的图片空隙间距BUG和解决办法
查看>>
[pb]从excel导入数据到datawindow
查看>>