2

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

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

我面临的问题是:

假设我有应用程序名称:Google Chrome。

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

同样,如果搜索字符串为“Suhail”,则显示结果为“Suhail hats no one”,但如果搜索字符串为“hates”,则结果不显示任何内容。

还有一种情况:假设文件名为“faMee”。

我搜索“amee”,结果什么都没有。我搜索“mee”,结果什么都没有,但在聚光灯下是我搜索“mee”,它向我显示文件“faMee”。

请有任何建议。

4

2 回答 2

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

尝试这个

于 2014-05-06T07:05:53.327 回答
0

好吧,不要在查询中使用“喜欢”,而是使用“包含”。请仔细阅读 NSPredicate Apple 文档和查询示例。

莫辛

于 2012-11-02T12:30:05.850 回答