swift – 使用NSMetadataQuery搜索文件什么都不做

swift – 使用NSMetadataQuery搜索文件什么都不做,第1张

概述我尝试使用NSMetadataQuery和NSPredicate来搜索文件.经过几个小时的尝试和寻找解决方案(我是 swift的新手),我有一个小例子.它编译得很好,但结果为零.我尝试了不同的谓词,但最后metadataQuery.resultCount始终为0. 任何人都知道什么是错的? class AppDelegate: NSObject, NSApplicationDelegate {v 我尝试使用NSMetadataquery和nspredicate来搜索文件.经过几个小时的尝试和寻找解决方案(我是 swift的新手),我有一个小例子.它编译得很好,但结果为零.我尝试了不同的谓词,但最后Metadataquery.resultCount始终为0.
任何人都知道什么是错的?
class AppDelegate: NSObject,NSApplicationDelegate {var Metadataquery: NSMetadataquery!var MetadataqueryDIDUpdateObserver: AnyObject?var MetadataqueryDIDFinishGatheringObserver: AnyObject?@IBOutlet weak var window: NSWindow!func applicationDIDFinishLaunching(aNotification: NSNotification) {    NSNotificationCenter.defaultCenter().addobserver(self,selector: "initalGatherComplete:",name: NSMetadataqueryDIDFinishGatheringNotification,object: nil)    Metadataquery = NSMetadataquery()    Metadataquery.searchScopes = [NSMetadataqueryIndexedLocalComputerScope]    Metadataquery.predicate = nspredicate(format: "%K liKE '*'",NSMetadataItemFSnameKey)    Metadataquery.startquery()}func initalGatherComplete(notification: NSNotification) {    Metadataquery.stopquery()    let resultCounter = Metadataquery.resultCount    NSLog("%lu",resultCounter)    NSNotificationCenter.defaultCenter().removeObserver(self,object: nil)}

最后但并非最不重要:当前谓词应该列出所有文件,但最后谓词应该只列出应用程序.什么是创建这样一个谓词的最佳实践?我打算过滤扩展名.app但也许有更好的方法?

谢谢!

检查你的 predicate syntax. liKE运算符不适用于NSMetadataquery谓词搜索(事实上,nspredicate在Spotlight元数据搜索的上下文中使用了一组非常相似但实际上不同的运算符和行为.)

NSMetadataquery的glob搜索语法只使用等号:

nspredicate(format: "%K ==[cd] '*'",NSMetadataItemFSnameKey)
总结

以上是内存溢出为你收集整理的swift – 使用NSMetadataQuery搜索文件什么都不做全部内容,希望文章能够帮你解决swift – 使用NSMetadataQuery搜索文件什么都不做所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1089478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存