【问题标题】:How to Search a List of Names in iOS?如何在 iOS 中搜索名称列表?
【发布时间】:2012-04-26 01:41:04
【问题描述】:

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

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

使用

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

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

我还希望能够通过仅输入 LAST NAME 进行搜索。 谁能帮帮我吗? 谢谢

【问题讨论】:

  • 请标记正确答案或以其他方式提供评论,说明为什么该答案不适合您。

标签: ios search ios5 xcode4.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

【讨论】:

    【解决方案2】:

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

    这里:

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

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

    【讨论】:

      猜你喜欢
      • 2011-09-03
      • 2012-03-07
      • 1970-01-01
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      相关资源
      最近更新 更多