macos - 搜索字符串谓词

标签 macos cocoa nspredicate spotlight nsmetadataquery

我正在尝试使用 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讨厌任何人”, 但如果搜索字符串是“hates”,结果不会显示任何内容。

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

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

请提出任何建议。

最佳答案

在查询中不要使用“like”,而是使用“contains”。 请仔细阅读 NSPredicate Apple 文档和查询示例。

莫赫辛

关于macos - 搜索字符串谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13193690/

相关文章:

ios - 以 NSPredicate 格式替换值

iphone - 复合谓词不起作用

ios - macOS 和 iOS 上的 libnl

linux - 使用 Electron 自定义形状的独立 Windows 应用程序

macos - 如何启用 syslogd 以从 OSX 中的路由器接收 UDP 日志

iphone - 查找谁拥有对象的保留计数

c++ - 在 Mac OS X 上构建 Trilinos(科学计算库)时遇到问题

iphone - UIVewController 的 UITextFieldDelegate 协议(protocol)

cocoa - 有从 Mac 上的传感器获取数据的示例代码吗?

objective-c - NSPredicate 和简单的正则表达式问题