1

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

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

这一直工作正常,因为它会查找属性 .name 并检查它是否包含在 searchText 中。我想知道是否有办法将其从检查它是否包含在搜索文本中更改为搜索文本是否以搜索过滤器开头。IE 如果搜索文本是school并且我键入sc作为过滤器,则搜索文本会保留,但如果我键入sco搜索文本school,则会被过滤掉。是否有某种beginswith我可以使用的东西来代替contains[c]. 谢谢!

4

1 回答 1

4

是的,事实上就是这样:

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

完整文档

于 2014-01-30T19:19:27.950 回答