搜索字符串谓词

时间:2012-11-02 10:45:09

标签: macos cocoa nspredicate spotlight nsmetadataquery

我正在尝试使用NSMetaDataQuery创建搜索查询并部署谓词,如下所示:

NSString * format = @"kMDItemDisplayName like[cd] %@";
NSPredicate * compPred = [NSPredicate predicateWithFormat:format,[NSString stringWithFormat:@"%@*",self.searchString]];

我面临的问题是:

假设我有名字申请:谷歌浏览器。

如果我搜索“google”作为搜索字符串,我可以获得结果即“Google Chrome”,但如果我搜索“chrome”,我将无法搜索“Google Chrome”。

同样,如果搜索字符串是“Suhail”,则显示结果为“Suhail不讨厌任何人”, 但如果搜索字符串是“讨厌”,则结果显示任何内容。

还有一个案例: 假设文件名是“faMee”。

我搜索“amee”,结果一无所获。 我搜索“mee”,结果什么都没有,但在聚光灯下我搜索“mee”它会显示我的文件“faMee”。

请提出任何建议。

2 个答案:

答案 0 :(得分:0)

在查询中使用“包含”,而不是“喜欢”。 请查看NSPredicate Apple文档并对查询进行抽样。

穆赫辛

答案 1 :(得分:0)

NSPredicate * compPred = [NSPredicate predicateWithFormat:format,[NSString stringWithFormat:@"*%@*",self.searchString]];

试试这个