用于从coredata查询字符串的子字符串的谓词

时间:2012-10-19 12:54:59

标签: ios sqlite core-data nspredicate nsfilemanager

在我的项目中,我在一个实体中有一组属性。其中一个是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

2 个答案:

答案 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];