iOS - 帮助使用[NSPredicate predicateWithFormat]

时间:2014-01-30 19:15:40

标签: ios search filter nspredicate predicatewithformat

嘿所以我正在使用NSPredicate来过滤数组。目前我使用以下代码:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.name contains[c] %@", searchText];

这一直在正常工作,因为它查找属性.name并检查它是否包含在searchText中。我想知道是否有一种方法可以让我更改它,检查它是否包含在搜索文本中,如果搜索文本以搜索过滤器开头。 I.E.如果搜索文本为school且我键入sc作为过滤器,则搜索文本会保留,但如果我键入sco则会过滤掉搜索文本school。我可以使用某种beginswith而不是contains[c]。谢谢!

1 个答案:

答案 0 :(得分:4)

是的,事实上确实如此:

  1. BEGINSWITH 左手表达式以右手表达开始。
  2. CONTAINS 左侧表达式包含右侧表达式。
  3. ENDSWITH 左手表达以右手表达结束。
  4. LIKE 左手表达式等于右手表达式:?和*被允许作为通配符,在哪里?匹配1个字符,*匹配0个或更多个字符。
  5. MATCHES 根据ICU v3,左手表达式使用正则表达式比较等于右手表达式(有关详细信息,请参阅ICU正则表达式用户指南)。
  6. Full docs