嘿所以我正在使用NSPredicate来过滤数组。目前我使用以下代码:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.name contains[c] %@", searchText];
这一直在正常工作,因为它查找属性.name并检查它是否包含在searchText中。我想知道是否有一种方法可以让我更改它,检查它是否包含在搜索文本中,如果搜索文本以搜索过滤器开头。 I.E.如果搜索文本为school
且我键入sc
作为过滤器,则搜索文本会保留,但如果我键入sco
则会过滤掉搜索文本school
。我可以使用某种beginswith
而不是contains[c]
。谢谢!
答案 0 :(得分:4)
是的,事实上确实如此:
BEGINSWITH
左手表达式以右手表达开始。CONTAINS
左侧表达式包含右侧表达式。ENDSWITH
左手表达以右手表达结束。LIKE
左手表达式等于右手表达式:?和*被允许作为通配符,在哪里?匹配1个字符,*匹配0个或更多个字符。MATCHES
根据ICU v3,左手表达式使用正则表达式比较等于右手表达式(有关详细信息,请参阅ICU正则表达式用户指南)。