1
自分のMacのすべてのファイルを、自分が作成したアプリケーション用に一覧表示しようとしています。 NSMetadataQueryを使用していますが、動作しません。NSMetadataQueryがデータを返さない
ここコードです:
import Cocoa
class ViewController: NSViewController
{
let metadataQuery = NSMetadataQuery()
@IBOutlet weak var searchTextField: NSTextField!
@IBOutlet weak var labelML: NSTextField!
@IBAction func searchClick(sender: AnyObject)
{
labelML.stringValue = "Hello \(searchTextField.stringValue)!"
startQuery()
handleMetadataQueryFinished(metadataQuery)
}
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view.
}
func startQuery()
{
print("Starting the query now...")
metadataQuery.searchScopes = [NSMetadataQueryUbiquitousDataScope]
let predicate = NSPredicate(format: "%K ==[cd] '*'", NSMetadataItemFSNameKey)
metadataQuery.predicate = predicate
if metadataQuery.startQuery(){
print("Successfully started the query.")
} else {
print("Failed to start the query.")
}
}
func handleMetadataQueryFinished(sender: NSMetadataQuery)
{
print("Search finished");
metadataQuery.disableUpdates()
metadataQuery.stopQuery()
print("Number of results \(metadataQuery.resultCount)")
for item in metadataQuery.results as! [NSMetadataItem]
{
let itemName = item.valueForAttribute(NSMetadataItemFSNameKey)
as! String
let itemUrl = item.valueForAttribute(NSMetadataItemURLKey)
as! NSURL
let itemSize = item.valueForAttribute(NSMetadataItemFSSizeKey)
as! Int
print("Item name = \(itemName)")
print("Item url = \(itemUrl)")
print("Item size = \(itemSize)")
}
}
}
あなたが見ることができるように、私はmetaQueryの結果の数を印刷し、それは私が代わりにNSMetadataQueryIndexedLocalComputerScopeのようないくつかのことを変更しようとしました0
に答えますNSMetadataQueryUbiquitousDataScopeまたは述語のフォーマットのいずれかの方法では動作しません。
理由は何ですか?