在我的项目中,我在一个实体中有一组属性。其中一个是path作为字符串。我想要所有记录,其中我的字符串作为路径中的子路径。
实施例: 路径: / var / mobile / Applications / C4ECC129-36D2-4428-8BB0- 6B1F4C971FC1 / Library / Caches / Packages / 1000
Mystring :Library / Caches / Packages / 1000
我尝试使用Like和contains如下所示但失败了。
[NSPredicate predicateWithFormat:@"bookPath like[c] '%%%@'",Mystring];
[NSPredicate predicateWithFormat:@"bookPath Contains[cd] '%@'",Mystring];
有人可以帮助编写谓词来获取包含mystring的记录。
真的很帮助我。
提前Tnx
答案 0 :(得分:12)
你需要有这样的谓词
[fecthRequest setPredicate:[NSPredicate predicateWithFormat:@"bookPath endswith[cd] %@", myString]];
或者
[fecthRequest setPredicate:[NSPredicate predicateWithFormat:@"bookPath contains[cd] %@", myString]];
没有结果是由%@
周围的单引号引起的。从文档(Dynamic Property Names):
字符串变量用引号括起来 使用%@
替换为格式字符串
关于谓词我真的建议使用第一个,如果你正在寻找它的子路径总是在原始路径的最后部分。
关于使用谓词,我建议您阅读String Comparisons。
希望有所帮助。
答案 1 :(得分:0)
试试这个:
[NSPredicate predicateWithFormat:@"%K contains %@", @"bookPath", Mystring];