OC_模糊搜索

6 篇文章 0 订阅
1 篇文章 0 订阅

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];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值