所以基本上我想使用 UISearchBar 来搜索名称数组。在数组内部,名称具有以下格式:
[名字] ([第二名字]) [姓氏]
使用
if (![string rangeOfString:seachTextPart].location == NSNotFound)
我已设法搜索仅在 UISearchBar 中输入名字的名称。但是,一旦我进入一个空间,我就没有结果。
此外,我希望能够通过输入姓氏进行搜索。谁能帮帮我吗?谢谢
假设您的格式如下: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
除非他们键入“John Smith”,否则 Byte 的代码可以工作。如果你想要更健壮的东西,你可以使用- (NSArray *)componentsSeparatedByString:(NSString *)separator
然后搜索数组中的任何字符串。所以输入“John Smith”将返回所有的 Johns 和所有的 Smiths
这里:
NSArray *theTerms = [searchTerm componentsSeparatedByString:@" "];
然后对所有内容运行 for 循环,theTerms
并根据您的名称检查它们,将包含搜索词的名称添加到数组中,然后显示它们。