【发布时间】:2012-08-13 19:19:55
【问题描述】:
我需要从NSMutableArray 中搜索字符串的索引。我已经实现了代码 & 效果很好,但我需要提高搜索速度。
我使用了以下代码:
NSIndexSet *indexes = [mArrayTableData indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop){
NSString *s = (NSString*)obj;
NSRange range = [s rangeOfString: txtField.text options:NSCaseInsensitiveSearch];
if(range.location == 0)//
return range.location != NSNotFound;
return NO;
}];
NSLog(@"indexes.firstIndex =%d",indexes.firstIndex);
【问题讨论】:
-
您需要找到一个索引还是多个索引?
-
是否需要支持部分匹配? (到目前为止,建议的答案不允许这样做)
-
为什么你需要比你得到的速度更快的速度?我用一个包含 112,000 个单词的数组测试了你的代码,它在 0.023 秒内执行。我在下面发布的方法耗时 0.01 秒。
-
感谢您的重播,您提供了代码,但我需要作为 iPhone 联系人进行搜索 - 如果 yourString=@"A" 或 @"An" 它应该得到 @"Another strings" 的索引作为 0
-
您应该在原始帖子中提到这一点——这是一条重要的信息。您只想要以您的搜索字符串开头的东西,还是在中间或末尾包含搜索字符串的东西 - 您发布的代码只会找到以搜索字符串开头的东西?
标签: iphone objective-c ios nsindexset