4
我正在使用Apple的TableSearch示例应用程序。iPhone SDK - TableSearch - 搜索所有单词而不仅仅是第一个
在他们的应用程序中,他们有一个Apple产品阵列。有一行“iPod touch”。搜索“touch”时,不显示任何结果。
有人可以帮我做出每行可搜索的所有单词吗?因此,搜索“iPod”时可以找到结果,但也可以找到关键字“touch”。
干杯。
我正在使用Apple的TableSearch示例应用程序。iPhone SDK - TableSearch - 搜索所有单词而不仅仅是第一个
在他们的应用程序中,他们有一个Apple产品阵列。有一行“iPod touch”。搜索“touch”时,不显示任何结果。
有人可以帮我做出每行可搜索的所有单词吗?因此,搜索“iPod”时可以找到结果,但也可以找到关键字“touch”。
干杯。
下面是在filterContentForSearchText:scope:
方法相关的代码在MainViewController.m:
NSComparisonResult result = [product.name compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame)
{
[self.filteredListContent addObject:product];
}
这与第一比较每个字符串的前n个字符(由范围参数指定),忽略大小写和变音符号,当前搜索字符串的n个字符,其中n是当前搜索字符串的长度。
尝试改变代码如下:
NSRange result = [product.name rangeOfString:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)];
if (result.location != NSNotFound)
{
[self.filteredListContent addObject:product];
}
这每个字串中搜索当前的搜索字符串。
非常感谢。这很好用! 现在它在字符串内搜索,所以在上面的例子中,即使使用“ouch”作为关键字,它也能找到“iPod touch”。但这对我来说不是一个大问题。 – nicoko 2009-07-12 19:35:56