五十七、基础框架(十五)创建 地址簿-5
来源:互联网 发布:soaoffice java 编辑:程序博客网 时间:2024/06/18 06:13
在前面一篇博文中,我 说到过 search:这项措施 显得 很原始,因为 这项措施 无法找到 部分匹配的结果,也无法找到 多个匹配的结果。于是 我们 需要修改一下 search:这项措施。其中 AddressBook.h这个文件中的search: 修改成 这样。
AddressBook.m这个文件中 search:这项措施的实施细则 修改成 这样:
为了 search:这项措施 能够找到 多个匹配的结果,其结果类型 由AddressBook类型的物件 换成了 可修改数组,也就是 NSMutableArray类型的物件,这样 就可以容纳 多个结果。
在search:这项措施中,我 首先 创建了 一个NSMutableArray类型的数组物件matches,用来 存储 匹配结果。
接着 同样 用 快速枚举 将book中的地址卡片 一个一个地 依次 读取 到currentCard当中。
每读取 一张卡片,都会对 这张卡片中的姓名,也就是 currentCard.name,采取 rangeOfString:options:这项措施。
rangeOfString:options:这项措施 附带 两个参数。其中 第一个参数 是 需要在其实施对象中搜索的字符串,第二个参数 是 选项。在这里 我 将 需要搜索的内容,也就是 字符串nameToSearch,作为 第一个参数,将 NSCaseInsensitiveSearch 作为 第二个参数,NSCaseInsensitiveSearch 表示 忽略 大小写。
rangeOfString:options:这项措施所产生的结果 是 NSRange类型的组织,这个NSRange组织中的两个成员location 和 length 分别 用来表示 rangeOfString:options:这项措施的参数所代表的字符串 在其实施对象所代表的字符串中的位置 和 长度。如果 rangeOfString:options:这项措施 在其实施对象所代表的字符串中 没有找到 其参数所代表的字符串,那么 它所产生的结果中的成员location的值 就是 NSNotFound 用来表示 没有找到。
for()循环中的if()语句 会判断 rangeOfString:options:这项措施所产生的结果中location这个成员的值 是否不是 NSNotFound,如果 不是,就表明 需要搜索的字符串 在当前的卡片当中 找到了,于是 就会执行
这行语句,将 当前的卡片 添加 到数组物件matches当中。在search:这项措施的最后
这行语句 会将 存储着匹配结果的数组物件matches 作为结果 传递回去。
接下来 我们 来看看 经过修改的search:措施 是否能够 如我们所愿地 工作:
运行 这个程序后,可以得到 这样的结果:
在这个程序中 我 在地址簿myBook当中 搜索了 字符串”ia”,并且 将 结果 存储 在可修改数组物件cardsWanted当中。
接着 我 对cardsWanted这个数组物件 采取了 count这项措施,用来计算 cardsWanted这个物件中的卡片的数量。如果 cardsWanted这个数组物件中的卡片数量 不为 0,那么 就利用 快速枚举 将 其中的卡片 依次 读取 并且 显示出来;如果 cardsWanted这个数组物件中的卡片数量 为 0,那么 就提示 用户 什么 也没有找到。
- 五十七、基础框架(十五)创建 地址簿-5
- 五十三、基础框架(十一)创建 地址簿-1
- 五十四、基础框架(十二)创建 地址簿-2
- 五十五、基础框架(十三)创建 地址簿-3
- 五十六、基础框架(十四)创建 地址簿-4
- 五十八、基础框架(十六)创建 地址簿-6
- 五十九、基础框架(十七)创建 地址簿-7
- 六十七、基础框架(二十五)文件操作-列举 目录内容
- 黑马程序员-----java基础十五(java之集合框架)
- 日拱一卒(五十七)
- JAVASE基础(十五)
- Ruby on rails开发从头来(五十七)- ActiveRecord基础(多对多关联关系)
- Ruby on rails开发从头来(五十七)- ActiveRecord基础(多对多关联关系)
- 机器学习基础(五十七)—— 监督学习、无监督学习
- 每日英语阅读(五十七)
- 技术分享连载(五十七)
- XML学习基础(十五)
- 安卓基础(十五)
- linux常用命令【分类导航链接,很全】
- UIPanGestureRecognizer类——为view添加手势
- 傻孩子。痛了?放手吧:伤感日志
- Derby入门
- 五十六、基础框架(十四)创建 地址簿-4
- 五十七、基础框架(十五)创建 地址簿-5
- ubuntu修改计算机名
- 五十八、基础框架(十六)创建 地址簿-6
- sql server日期函数
- JAVA I/O printstream printwriter 区别
- struts-config.xml简单配置
- 如果我是明媚的人,谁能看懂我的腐朽:伤感心情日志
- servlet 原理
- MyEclipse反向生成XML和JAVA文件