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

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];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: