所以基本上我想使用UISearchBar来搜索名字数组。 在数组内部,名称具有以下格式:
[FIRST NAME]([第二名])[最后一个名字]
使用
if (![string rangeOfString:seachTextPart].location == NSNotFound)
我已成功搜索仅输入FIRST NAME的名称到UISearchBar。 但是一旦我进入空间,我就没有结果。
此外,我希望能够通过输入最后一个名称进行搜索。 谁能帮帮我吗? 感谢
答案 0 :(得分: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
答案 1 :(得分:0)
Byte的代码可以工作,除非他们输入“John Smith”。如果您想要更强大的功能,可以使用- (NSArray *)componentsSeparatedByString:(NSString *)separator
,然后搜索数组中的任何字符串。因此,打字“约翰史密斯”将返回所有约翰斯和所有史密斯
这里:
NSArray *theTerms = [searchTerm componentsSeparatedByString:@" "];
然后在所有theTerms
中运行for循环,并根据您的名称检查它们,将包含搜索词的那些添加到数组中,然后显示它们。