iOS-使用[NSPredicate predicateWithFormat]的帮助

iOS-使用[NSPredicate predicateWithFormat]的帮助,ios,search,filter,nspredicate,predicatewithformat,Ios,Search,Filter,Nspredicate,Predicatewithformat,嘿,我正在使用NSPredicate来过滤数组。目前,我使用以下代码: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.name contains[c] %@", searchText]; 当它查找attribute.name并检查它是否包含在searchText中时,它工作正常。我想知道是否有一种方法可以将它从检查是否包含在搜索文本中更改为搜索文本是否以搜索过滤器开头。也就是说,如果搜索文本是school并且我

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

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

当它查找attribute.name并检查它是否包含在searchText中时,它工作正常。我想知道是否有一种方法可以将它从检查是否包含在搜索文本中更改为搜索文本是否以搜索过滤器开头。也就是说,如果搜索文本是
school
并且我键入
sc
作为过滤器,则搜索文本将保持不变,但如果我键入
sco
则搜索文本
school
将被过滤掉。是否有某种类型的
beginswith
可以代替
contains[c]
。谢谢

是的,事实上:

  • BEGINSWITH
    左侧表达式从右侧表达式开始
  • 包含
    左侧表达式包含右侧表达式
  • ENDSWITH
    左侧表达式以右侧表达式结尾
  • LIKE
    左侧表达式等于右侧表达式:?和*可以作为通配符,在哪里?匹配1个字符,*匹配0个或更多字符
  • 匹配
    根据ICU v3,使用正则表达式样式比较,左手表达式等于右手表达式(有关更多详细信息,请参阅《ICU正则表达式用户指南》)

  • 是的,事实上:

  • BEGINSWITH
    左侧表达式从右侧表达式开始
  • 包含
    左侧表达式包含右侧表达式
  • ENDSWITH
    左侧表达式以右侧表达式结尾
  • LIKE
    左侧表达式等于右侧表达式:?和*可以作为通配符,在哪里?匹配1个字符,*匹配0个或更多字符
  • 匹配
    根据ICU v3,使用正则表达式样式比较,左手表达式等于右手表达式(有关更多详细信息,请参阅《ICU正则表达式用户指南》)