OC_模糊搜索
2016-07-21 09:23
302 查看
OC_模糊搜索
核心代码预览:
//开始搜索 -(void)startSearch:(NSString *)string{ if (self.seachUserDTOList.count>0) { [self.seachUserDTOList removeAllObjects]; } //开始搜索 NSString *key = string.lowercaseString; NSMutableArray *tempArr = [NSMutableArray array]; // NSLog(@"key = %@",key); if (![key isEqualToString:@""] && ![key isEqual:[NSNull null]] && key != nil) { [self.storeUserDTOList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { UserDTO *dto = self.storeUserDTOList[idx]; //担心框架有时候会误转,再次都设置转为小写 NSString *name = dto.name.lowercaseString; NSString *namePinyin = dto.namePinYin.lowercaseString; NSString *nameFireLetter = dto.nameFirstLetter.lowercaseString; NSRange rang1 = [name rangeOfString:key]; if (rang1.length>0) { ///比嫩 -比 [tempArr addObject:dto]; }else{ if ([nameFireLetter containsString:key]) { //bn - b [tempArr addObject:dto]; }else{ //ershou if ([nameFireLetter containsString:[key substringToIndex:1]]) { if ([namePinyin containsString:key] ) { [tempArr addObject:dto]; } } } } }]; [tempArr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if (![self.seachUserDTOList containsObject:tempArr[idx]]) { [self.seachUserDTOList addObject:tempArr[idx]]; } }]; //NSLog(@"self.searchResultList = %@",self.seachUserDTOList); self.isSearchState = YES; }else{ self.isSearchState = NO; } [self.tableView reloadData]; }
相关文章推荐
- OC - 9.基于Quartz2D绘制下载进度条(demo)
- oc 的一些概念
- [代码例程] iPhone开发入门(7)--- 从C/C++语言到Objective-C语
- oc 数值转换
- IOS 面试习题 Object-C
- objective-c block 讲解
- IOS求职之OC面试题
- iOS OC和Swift混编
- OC_继承,初始化
- 招一个靠谱的iOS程序员 - 轩哥整理
- OC 省市区划分
- iOS开发 — Quartz 2D知识点应用 (制作了一个Demo,源代码)
- OC 自定义 get/set 方法注意点
- 枚举之美(上)
- iOS 签名板 LYDrawBoard
- iOS9 新特性 3DTouch
- OC 书签管理系统
- 编写 Objective-C 代码/掌握基本的编程技能 之 读后笔记
- OC Unicode和汉字(utf8)的互转
- 【整理】OC中常用的关于时间格式的转换