IOS 最强大的模糊搜索
2016-07-09 23:42
381 查看
//开始搜索
-(void)startSearch:(NSString *)string{
if (self.seachUserDTOList.count>0)
{
[self.seachUserDTOListremoveAllObjects];
}
//开始搜索
NSString *key = string.lowercaseString;
NSMutableArray *tempArr = [NSMutableArrayarray];
// NSLog(@"key = %@",key);
if (![keyisEqualToString:@""] && ![keyisEqual:[NSNullnull]]
&& key != nil) {
[self.storeUserDTOListenumerateObjectsUsingBlock:^(id _Nonnull
obj, NSUInteger idx,BOOL *
_Nonnull stop) {
UserDTO *dto =self.storeUserDTOList[idx];
// NSLog(@"%@",self.storeUserDTOList);
NSLog(@"%@",dto.name);
//担心框架有时候会误转,再次都设置转为小写
NSString *name = dto.name.lowercaseString;
NSString *namePinyin = dto.namePinYin.lowercaseString;
NSString *nameFireLetter = dto.nameFirstLetter.lowercaseString;
NSLog(@"%@",name);
NSRange rang1 = [namerangeOfString:key];
if (rang1.length>0) {///比牛
-比
[tempArr addObject:dto];
}else{
if ([nameFireLettercontainsString:key]) {
//bn - b
[tempArr addObject:dto];
}else{ //ershou
if ([nameFireLettercontainsString:[key
substringToIndex:1]]) {
if ([namePinyincontainsString:key] ) {
[tempArr addObject:dto];
}
}
}
}
}];
[tempArr enumerateObjectsUsingBlock:^(id _Nonnull obj,
NSUInteger idx,BOOL *
_Nonnull stop) {
if (![self.seachUserDTOListcontainsObject:tempArr[idx]])
{
[self.seachUserDTOListaddObject:tempArr[idx]];
}
}];
//NSLog(@"self.searchResultList = %@",self.seachUserDTOList);
self.isSearchState =YES;
}else{
self.isSearchState =NO;
}
[self.tableViewreloadData];
}
-(void)startSearch:(NSString *)string{
if (self.seachUserDTOList.count>0)
{
[self.seachUserDTOListremoveAllObjects];
}
//开始搜索
NSString *key = string.lowercaseString;
NSMutableArray *tempArr = [NSMutableArrayarray];
// NSLog(@"key = %@",key);
if (![keyisEqualToString:@""] && ![keyisEqual:[NSNullnull]]
&& key != nil) {
[self.storeUserDTOListenumerateObjectsUsingBlock:^(id _Nonnull
obj, NSUInteger idx,BOOL *
_Nonnull stop) {
UserDTO *dto =self.storeUserDTOList[idx];
// NSLog(@"%@",self.storeUserDTOList);
NSLog(@"%@",dto.name);
//担心框架有时候会误转,再次都设置转为小写
NSString *name = dto.name.lowercaseString;
NSString *namePinyin = dto.namePinYin.lowercaseString;
NSString *nameFireLetter = dto.nameFirstLetter.lowercaseString;
NSLog(@"%@",name);
NSRange rang1 = [namerangeOfString:key];
if (rang1.length>0) {///比牛
-比
[tempArr addObject:dto];
}else{
if ([nameFireLettercontainsString:key]) {
//bn - b
[tempArr addObject:dto];
}else{ //ershou
if ([nameFireLettercontainsString:[key
substringToIndex:1]]) {
if ([namePinyincontainsString:key] ) {
[tempArr addObject:dto];
}
}
}
}
}];
[tempArr enumerateObjectsUsingBlock:^(id _Nonnull obj,
NSUInteger idx,BOOL *
_Nonnull stop) {
if (![self.seachUserDTOListcontainsObject:tempArr[idx]])
{
[self.seachUserDTOListaddObject:tempArr[idx]];
}
}];
//NSLog(@"self.searchResultList = %@",self.seachUserDTOList);
self.isSearchState =YES;
}else{
self.isSearchState =NO;
}
[self.tableViewreloadData];
}
相关文章推荐
- iOS定时器的实现
- IOS 视频分解图片、图片合成视频
- iOS开发 ☞ const和宏的选择
- nagios
- iOS多线程技术-上
- 精通iOS开发--第19章 Core Location 和 Map Kit 01 Capabilities 下 示例程序
- 精通iOS开发--第19章 Core Location 和 Map Kit 上
- iOS开发主流的数据解析框架JSONModel
- 不同BIOS下的U盘启动设置方法
- iOS Scrollview 的头部view的拉伸伸缩效果
- iOS-解压zip
- iOS-高德地图
- 敲一下enter键,完成iOS的打包工作
- 打造轻量级 tableViewController 之抽离 DataSource/Delegate
- IOS常用代码总结 - 第三方库部分
- iOS开发经验总结
- (翻译)开始iOS 7中自动布局教程(二)
- 开始iOS 7中自动布局教程(一)
- iOS architecture and framework(Stanford class 1)
- iOS 浅拷贝和深拷贝的区别? copy和mutableCopy的区别?