2012-03-29 126 views
0

这是我当前的搜索代码。iOS - 搜索表格视图

-(void)filterContentForSearchText:(NSString *)searchText scope:(NSString *)scope { 
    [filteredList removeAllObjects];   
    for(Location *item in list) 
    { 
     NSRange result = [item.title rangeOfString:searchText options:NSCaseInsensitiveSearch range:NSMakeRange(0, [searchText length])]; 
     if(result.location != NSNotFound) 
     { 
      [filteredList addObject:item]; 
     } 
    } 
} 

我该如何改变它来匹配标题的任何部分而不仅仅是开始。

例子:

在,如果我搜索“拉斯维加斯”,“拉斯维加斯”将出现在列表中,但是当我搜索“拉斯维加斯”它不是一时。

我想要的搜索术语“拉斯维加斯”与“拉斯维加斯”

多亏了回来, 阿什利

+0

仅供参考,您可能要开始使用'通过'filteredArrayUsingPredicate阵列NSPredicate's:'。它让生活变得更轻松。以下是谓词字符串语法的Apple参考:[谓词格式字符串语法](http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html#//apple_ref/doc/uid/TP40001795-SW1) – Gobot 2012-03-29 16:12:48

回答

1

使用rangeOfString:options:而不是rangeOfString:选项:范围:。它是range参数,它将搜索限制在字符串的开头。

或者,如果你想使用rangeOfString某些原因:选项:范围:然后用这个作为范围:NSMakeRange(0, [item.title length])

+0

我简直不敢相信这一切。谢谢 – 2012-03-29 16:35:53