2014-02-17 60 views
0

我想通过一个包含字符串的数组进行搜索。因此我使用了一个搜索栏。 这里是我的代码:如何使用搜索栏扩大搜索范围

for(NSString *string in itemsArray) 
{ 
    NSRange nameRange = [string rangeOfString:text options:NSCaseInsensitiveSearch]; 
    if (nameRange.location != NSNotFound) 
    { 
     [filteredItemsArray addObject:string]; 
    } 
} 

它的伟大工程,但问题是,它只是发现当我写它完全一样的方式(除了不区分大小写)的字符串。 但我也想找到它,即使字符串不适合100%。例如,当我搜索'Ralle Turner'时,它也应该找到'Ralle/Ralph Turner'的字符串。

感谢您的帮助!

回答

0

您需要将搜索字符串拆分为单词,然后遍历每个单词以查找匹配。

您可以分割使用此代码串的循环

for(NSString *string in itemsArray) 
{ 
    NSArray *words = [text componentsSeparatedByString:@" "]; 
    for (NSString *word in words) 
    { 
     NSRange nameRange = [string rangeOfString:word options:NSCaseInsensitiveSearch]; 
     if (nameRange.location != NSNotFound) 
     { 
      [filteredItemsArray addObject:string]; 
      break; 
     } 
    } 
} 
+0

这样的话阵列是一个跟在我的数据? – user3298017

+0

@ user3298017否,单词数组包含搜索字符串中的每个单词。在你的例子中,它会包含2个单词:Ralle和Turner。 – Merlevede

+0

和什么是mystring? – user3298017