0

所以基本上我想使用 UISearchBar 来搜索名称数组。在数组内部,名称具有以下格式:

[名字] ([第二名字]) [姓氏]

使用

 if (![string rangeOfString:seachTextPart].location == NSNotFound) 

我已设法搜索仅在 UISearchBar 中输入名字的名称。但是,一旦我进入一个空间,我就没有结果。

此外,我希望能够通过输入姓氏进行搜索。谁能帮帮我吗?谢谢

4

2 回答 2

1

假设您的格式如下:name = @"[John]([James])[Smith]";

搜索[name rangeOfString:@"John"]将产生找到。

搜索[name rangeOfString:@"John "]将产生未找到,因为@"John "不在名称中

但在这种情况下,[name rangeOfString:@"Smith"]就会发现。

试试这个:删除所有空格和小写字符串

   searchTerm = [[searchTerm stringByReplacingOccurrencesOfString:@" " withString:@""] lowercaseString];
   NSRange searchName = [[name lowercaseString] rangeOfString:searchTerm];

如果您想测试,只需执行此操作” if (searchName == 0) //it does not match

于 2012-04-13T20:08:28.280 回答
0

除非他们键入“John Smith”,否则 Byte 的代码可以工作。如果你想要更健壮的东西,你可以使用- (NSArray *)componentsSeparatedByString:(NSString *)separator然后搜索数组中的任何字符串。所以输入“John Smith”将返回所有的 Johns 和所有的 Smiths

这里:

NSArray *theTerms = [searchTerm componentsSeparatedByString:@" "];

然后对所有内容运行 for 循环,theTerms并根据您的名称检查它们,将包含搜索词的名称添加到数组中,然后显示它们。

于 2012-04-13T21:42:19.417 回答