1, 搜索框,支持拼音搜索,与 汉字搜索
初始化 2 个可变数组
一个放要查询的数据
一个放查询到的结果
2, 引入 pinyin 汉子的 第三方库
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
searchResults = [[NSMutableArray alloc]init];
if (mySearchBar.text.length>0&&![ChineseInclude isIncludeChineseInString:mySearchBar.text]) {
NSLog(@"%lu",(unsigned long)_userData.count);
NSLog(@"%lu",(unsigned long)self.desArr.count);
for (int i=0; i<_userData.count; i++) {
if ([ChineseInclude isIncludeChineseInString:self.desArr[i]]) {
NSString *tempPinYinStr = [PinYinForObjc chineseConvertToPinYin: self.desArr[i]];
NSRange titleResult=[tempPinYinStr rangeOfString:mySearchBar.text options:NSCaseInsensitiveSearch];
if (titleResult.length>0) {
NSLog(@"%@",self.desArr[i]);
[searchResults addObject:_userData[i]];
}
NSString *tempPinYinHeadStr = [PinYinForObjc chineseConvertToPinYinHead:self.desArr[i]];
NSRange titleHeadResult=[tempPinYinHeadStr rangeOfString:mySearchBar.text options:NSCaseInsensitiveSearch];
if (titleHeadResult.length>0) {
NSLog(@"%@",self.desArr[i]);
[searchResults addObject:_userData[i]];
}
}
else {
NSRange titleResult=[self.desArr[i] rangeOfString:mySearchBar.text options:NSCaseInsensitiveSearch];
if (titleResult.length>0) {
NSLog(@"%@",self.desArr[i]);
[searchResults addObject:_userData[i]];
}
}
}
} else if (mySearchBar.text.length>0&&[ChineseInclude isIncludeChineseInString:mySearchBar.text]) {
NSLog(@"%lu",(unsigned long)_userData.count);
NSLog(@"%lu",(unsigned long)self.desArr.count);
for (int i = 0; i<_userData.count; i++) {
NSString *tempStr = [self.desArr objectAtIndex:i];
NSRange titleResult=[tempStr rangeOfString:mySearchBar.text options:NSCaseInsensitiveSearch];
if (titleResult.length>0) {
[searchResults addObject:_userData[i]];
}
}
}
// [self.tableView reloadData];
}