gpt4 book ai didi

metadata - 在 iOS App Sandbox 上获取本地文件的 NSMetadataItem

转载 作者:行者123 更新时间:2023-12-03 17:37:42 30 4
gpt4 key购买 nike

我知道在 iOS 上你只能使用 NSMetadataQuery对于 iCloud 文件。但是,根据 Apple 的 guide ,您仍然可以获得NSMetadataItem通过使用 FileWrapper 手动搜索您想要的文件:

iOS allows metadata searches within iCloud to find files corresponding files. It provides only the Objective-C interface to file metadata query, NSMetadataQuery and NSMetadataItem, as well as only supporting the search scope that searches iCloud.

Unlike the desktop, the iOS application’s sandbox is not searchable using the metadata classes. In order to search your application’s sandbox, you will need to traverse the files within the sandbox file system recursively using the NSFileManager class. Once matching file or files is found, you can access that file in the manner that you require. You are also able to use the NSMedatataItem class to retrieve metadata for that particular file.


但是,我找不到获取 NSMetadataItem 的方法。来自 iOS 沙箱上的本地文件。您可以初始化 NSMetadataItem来自文件 URL,但仅在 macOS 上可用。 FileManager似乎也没有 API 来检索 NSMetadataItem从中。
我如何获得 NSMetadataItem对于 iOS App Sandbox 上的本地文件?

最佳答案

使用 NSMetadataQuery要查询 iCloud 文件,请添加观察者以获取通知。

metaDataQuery.searchScopes = [NSMetadataQueryUbiquitousDocumentsScope, NSMetadataQueryUbiquitousDataScope]

NotificationCenter.default.addObserver(self, selector: #selector(self.metadataQueryDidFinishGathering),
name: NSNotification.Name.NSMetadataQueryDidFinishGathering, object: metaDataQuery)
metaDataQuery.start()

func metadataQueryDidFinishGathering(notification: NSNotification) {
let result: [NSMedatataItem] = (notification.object as! NSMetadataQuery).results as! [NSMedatataItem]
// handle result
}

关于metadata - 在 iOS App Sandbox 上获取本地文件的 NSMetadataItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44738816/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com