您的位置:首页 > 移动开发 > IOS开发

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];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS模糊搜索 OC