【发布时间】:2014-09-09 07:37:01
【问题描述】:
我当前的数组如下所示。我为 sectionIndex 表创建了这个数组格式。所以我可以从数组中搜索并使用索引表显示搜索文本。
arrContent = (
{
key = A;
value = (
Ac,
Acting
);
},
{
key = B;
value = (
Basketball,
Baseball
);
},
{
key = C;
value = (
Cat
);
}
{
key = P;
value = (
Panda,
Peacock
);
}
)
我的搜索代码如下所示。它工作正常。
-(void)searchText:(NSString *) text
{
[arrSearch removeAllObjects];
for (int i = 0; i < [arrContent count]; i++)
{
NSMutableArray *temp = [[NSMutableArray alloc]init];
NSMutableArray *arrFind = arrContent[i][@"value"];
for (int j = 0; j < [arrFind count]; j++)
{
NSString *str = arrFind[j];
// containsString: method find my string if its available within range
if ([str containsString:text])
[temp addObject:str];
}
if ([temp count])
{
[arrSearch addObject:@{@"key":arrContent[i][@"key"],@"value":temp}];
}
}
NSLog(@"Search : %@",text);
NSLog(@"arrSearch : %@",arrSearch);
}
我得到如下输出。这是正确的。
Search : ac
arrSearch : (
{
key = A;
value = (
Ac,
Acting
);
},
{
key = P;
value = (
Peacock
);
}
)
我只是想问是否有更好的方法来搜索并使用 NSPredicate 获得相同的输出,因为当有大量数据时,for 循环会花费时间。
希望得到帮助。
【问题讨论】:
标签: ios iphone nsarray nspredicate