gpt4 book ai didi

ios - NSMetadataQuery 什么都不返回

转载 作者:行者123 更新时间:2023-11-28 08:26:19 26 4
gpt4 key购买 nike

使用在 iOS 10 上运行的 xcode 8。尝试组合一个 super 简单的 NSMetadataQuery。现在腰部差不多一天了。设法让它进行查询,但它没有从我的 iCloud 返回任何文档,没有。

class ViewController: UIViewController {

var metadataQuery: NSMetadataQuery!
var metadataQueryDidUpdateObserver: AnyObject?
var metadataQueryDidFinishGatheringObserver: AnyObject?

override func viewDidLoad() {
super.viewDidLoad()


// Do any additional setup after loading the view, typically from a nib.

metadataQuery = NSMetadataQuery()

metadataQuery?.predicate = NSPredicate(format: "NSMetadataItemFSNameKey == '*'")
metadataQuery?.searchScopes = [NSMetadataQueryUbiquitousDocumentsScope, NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope]

NotificationCenter.default.addObserver(self, selector: #selector(initalGatherComplete), name: NSNotification.Name.NSMetadataQueryDidFinishGathering, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(queryStarted), name: NSNotification.Name.NSMetadataQueryDidUpdate, object: nil)

metadataQuery.start()


}

func queryStarted(notification: NSNotification) {
print("queryStarted")
}

func initalGatherComplete(notification: NSNotification) {
metadataQuery.stop()
metadataQuery.disableUpdates()

let resultCounter = metadataQuery.resultCount
print("%lu", resultCounter,metadataQuery.results)

NotificationCenter.default.removeObserver(self, name: NSNotification.Name.NSMetadataQueryDidFinishGathering, object: nil)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

}

它什么都不返回,没有错误,没有数据,只有空洞的空间。现在我是的,我没有在本地保存任何文档,但我对本地文档不感兴趣我想要 iCloud 文档。

我的 plist 是这样说的......

<key>NSUbiquitousContainers</key>
<dict>
<key>iCloud.com.ch.cqd.iCloudQuery</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerName</key>
<string>iCloudQuery</string>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>Any</string>
</dict>
</dict>

我在这里错过了什么?

最佳答案

好的,

经过大量搜索,我想我找到了答案。这个应用程序创建了自己的 iCloud 子目录 [同名],如果我将文件复制到其中;我能看到他们。它有效。

但我只能看到文件而不能看到目录,这似乎是 NSMetadataQuery 的局限性。

我的调查还带我进行了扩展,其中似乎有六个或更多。这些 UIDocument 扩展之一,但等等,这也只提供单个文件。更好的是我可以在我的通用 icloud 帐户中看到文件夹,发布了一些代码 SO question在这里工作。

有一种方法可以识别自定义代码段以打开特定文件类型,我遵循并完成了本教程。

iOS Extensions: Document Provider Tutorial

它也很好用,如果这个链接坏了,谷歌一下。但这实际上是一个文件;我想要一个文件夹。

也许这就是答案。但这并不是很理想。

关于ios - NSMetadataQuery 什么都不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39881990/

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