Swift 使用NSMetadataQuery搜索文件没有任何作用
我尝试使用NSMetadataQuery和NSPredicate来搜索文件。经过几个小时的尝试和寻找解决方案(我是swift新手),我有了一个小例子。它编译得很好,但结果为零。我尝试了不同的谓词,但最后metadataQuery.resultCount始终为0。 有人知道怎么回事吗Swift 使用NSMetadataQuery搜索文件没有任何作用,swift,xcode6,Swift,Xcode6,我尝试使用NSMetadataQuery和NSPredicate来搜索文件。经过几个小时的尝试和寻找解决方案(我是swift新手),我有了一个小例子。它编译得很好,但结果为零。我尝试了不同的谓词,但最后metadataQuery.resultCount始终为0。 有人知道怎么回事吗 class AppDelegate: NSObject, NSApplicationDelegate { var metadataQuery: NSMetadataQuery! var metadataQueryDi
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, name: NSMetadataQueryDidFinishGatheringNotification, object: nil)
}
最后但并非最不重要的一点是:当前谓词应该列出所有文件,但最后谓词应该只列出应用程序。创建这样一个谓词的最佳实践是什么?我计划筛选extension.app,但也许有更好的方法
谢谢 检查您的密码。LIKE
运算符不可用于NSMetadataQuery
谓词搜索(事实上,NSPredicate
在聚光灯元数据搜索的上下文中使用了一组非常相似但实际上不同的运算符和行为。)
NSMetadataQuery
用于全局搜索的语法仅使用等号:
NSPredicate(format: "%K ==[cd] '*'", NSMetadataItemFSNameKey)
NSMetadataQuery似乎无法正确使用swift。我找不到一个有效的例子