Благодаря @vadian я получил подсказку:
Реализовал метод после небольшого поиска, надеюсь, вы найдете его полезным.
Примечание. В этом методе используется точечный поиск, который может быть быстрее традиционных методов, но он ограничен несистемными и индексированными каталогами.
После установки предиката и путей вы прослушиваете уведомление, срабатывающее при завершении сбора результатов.
func getFiles(in paths: [String], query: String) {
let queryMeta = NSMetadataQuery()
let nf = NotificationCenter.default
nf.addObserver(forName: NSNotification.Name.NSMetadataQueryDidFinishGathering, object: nil, queue: operationQueue, using:{_ in
queryMeta.disableUpdates()
print(queryMeta.results.count)
for item in queryMeta.results {
if let itemMeta = item as? NSMetadataItem, let name = itemMeta.value(forAttribute: NSMetadataItemPathKey) {
print(name)
}
}
})
queryMeta.searchScopes = paths
queryMeta.predicate = NSPredicate(format: "%K CONTAINS[c] '\(query)'", NSMetadataItemFSNameKey)
print("Starting searching for query: \(query)")
queryMeta.start()
}