首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSMutalbleArray中的本地搜索

NSMutalbleArray中的本地搜索
EN

Stack Overflow用户
提问于 2013-03-15 21:42:25
回答 6查看 241关注 0票数 0

我想在NSMutalbleArray中搜索,我的代码是:

代码语言:javascript
复制
    arrCelebs=[[NSMutableArray alloc] initWithObjects:@"Test 1",@"Test 2",@"Test 42",@"Test 5", nil];

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    NSString *arrString1 = txtSearch.text;
    NSRange tmprange;
    for(NSString *string in arrCelebs) {
            tmprange = [arrString1 rangeOfString:string];
            if (tmprange.location != NSNotFound) {
                     NSLog(@"String found");
                    break;
            }
    }
    return YES;
    }

如果我输入"t“,那么它将搜索所有数据,我想将其添加到另一个数组中。用于在表视图中显示。

EN

回答 6

Stack Overflow用户

发布于 2013-03-15 21:46:56

您可以使用NSPredicate的强大功能

代码语言:javascript
复制
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH[c] %@", textField.text];
NSArray *filteredArray = [arrCelebs filteredArrayUsingPredicate:predicate];
票数 7
EN

Stack Overflow用户

发布于 2013-03-15 21:52:32

通过使用谓词,您可以轻松高效地获得结果。

代码语言:javascript
复制
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@",  txtSearch.text];
    NSArray *ResultArray = [yourArray filteredArrayUsingPredicate:predicate];
    return YES;
}
票数 3
EN

Stack Overflow用户

发布于 2013-03-15 21:46:42

尝试:

代码语言:javascript
复制
arr_NewArray  = [[NSMutableArray alloc] init];

for (int i = 0; i < [arr_YourArrayToSearch count]; i++)
{
     NSString *curString = [string lowercaseString];
     NSString *curStringInArray = [[arr_YourArrayToSearch objectAtIndex:i]lowercaseString];

     if (![curString rangeOfString:curStringSmall].location == NSNotFound)
     {
          [arr_NewArray addObject:[arr_YourArrayToSearch objectAtIndex:i]];
     }
 }

arr_NewArray将为您提供包含与搜索字符串匹配的数据的数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15433982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档