代码之家  ›  专栏  ›  技术社区  ›  user1904273

nspredicate检查字符串属性中的任何单词是否与swift中的搜索词匹配

  •  1
  • user1904273  · 技术社区  · 5 年前

    我想使用nspredicate在核心数据中搜索字符串属性以查找搜索项。字符串属性可以是一个或多个,例如。 Ulysses The Red Badge of Courage .

    我可以用 contains 如下所示:

    NSPredicate *pred= [NSPredicate predicateWithFormat:@"title contains[cd] %@",str];
    

    但是,为了防止搜索词匹配 rage 例如,反对 The Red Badge Of Courage 从单词的开头寻找匹配项会更安全。

    是否有方法修改beginswith,以便您可以将其应用于字符串中的任何单词,而不仅仅是整个字符串,即:

    NSPredicate *pred = [NSPredicate predicateWithFormat:@"title beginswith[cd] %@", str];
    

    如果属性值与搜索词中的任何单词匹配,也可以搜索:

    NSPredicate *pred = [NSPredicate predicateWithFormat: @"SELF IN %@", str]
    

    基本上,我想做相反的事情,检查搜索字符串是否与核心数据中属性中的任何单词匹配。

    谢谢你的建议

    0 回复  |  直到 5 年前