5

在我的项目中,我在一个实体中有一组属性。其中一个是作为字符串的路径。我想要所有将我的字符串作为路径中的子路径的记录。

示例: 路径: /var/mobile/Applications/C4ECC129-36D2-4428-8BB0-6B1F4C971FC1/Library/Caches/Packages/1000

我的字符串:库/缓存/包/1000

我尝试使用 Like 并包含如下但失败了。

[NSPredicate predicateWithFormat:@"bookPath like[c] '%%%@'",Mystring];
[NSPredicate predicateWithFormat:@"bookPath Contains[cd] '%@'",Mystring];

有人可以帮助编写谓词来获取那些包含 mystring 的记录吗?

真的帮了我很多。

提前 Tnx

4

2 回答 2

14

你需要有这样的谓词

[fecthRequest setPredicate:[NSPredicate predicateWithFormat:@"bookPath endswith[cd] %@", myString]];

或这个

[fecthRequest setPredicate:[NSPredicate predicateWithFormat:@"bookPath contains[cd] %@", myString]];

没有结果是由于您的%@. 从文档(动态属性名称):

字符串变量在使用 %@ 替换为格式字符串时用引号括起来

关于谓词,我真的建议使用第一个,如果您要查找的子路径始终位于原始路径的最后部分。

关于使用谓词,我真的建议阅读String Comparisons

希望有帮助。

于 2012-10-19T15:03:23.833 回答
0

尝试这个:

[NSPredicate predicateWithFormat:@"%K contains %@", @"bookPath", Mystring];
于 2012-10-19T14:50:08.860 回答