2014-01-30 39 views
0

嘿所以我使用NSPredicate来过滤数组。目前我使用下面的代码:iOS - 帮助使用[NSPredicate predicateWithFormat]

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

这已经好了工作,因为它看起来的属性。名称和检查,看它是否包含在SEARCHTEXT。我想知道是否有办法让我将它从检查文件中是否包含在搜索文本中更改为搜索文本是否以搜索过滤器开头。 I.E.如果搜索文本是school,并且我输入sc作为搜索文本保留的过滤器,但是如果我输入sco,搜索文本school被过滤掉。是否有某种beginswith,我可以使用,而不是contains[c]。谢谢!

回答

4

是的,没错,事实上:

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

Full docs