2012-10-19 40 views
4

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

例子: 路径:在/ var /移动/应用/ C4ECC129-36D2-4428-8BB0- 6B1F4C971FC1 /图书馆/缓存/封装/ 1000

MyString的:图书馆/缓存/封装/ 1000

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

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

有人可以帮助写入谓词来获取包含mystring的记录。

真的帮了我很多。

TNX提前

回答

12

你需要有这样的

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

谓词或本

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

的没有结果的原因以单一的方式在你的%@附近测试。从文档(Dynamic Property Names):

字符串变量用引号包围时,他们代入格式字符串 使用%@

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

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

希望有所帮助。

0

试试这个:

[NSPredicate predicateWithFormat:@"%K contains %@", @"bookPath", Mystring]; 
+0

我尝试过,但遇到与日志崩溃:作业似乎已崩溃:分割故障:11.如果你有任何想法可以帮助你plz帮助 – Dinakar