- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 NSMetaDataQuery
在 iCloud 中探索我的应用可用的文件。我能够开始查询,但它永远不会结束。这是我的代码。
func report1() {
let filemgr = FileManager.default
let url = filemgr.url(forUbiquityContainerIdentifier: nil)
guard url != nil else {
print("url is nil")
return
}
let metaDataQuery = NSMetadataQuery()
metaDataQuery.predicate =
NSPredicate(format: "%K like '*'", NSMetadataItemFSNameKey)
metaDataQuery.searchScopes = [NSMetadataQueryUbiquitousDocumentsScope]
NotificationCenter.default.addObserver(self,
selector: #selector(didFinish),
name: NSNotification.Name.NSMetadataQueryDidFinishGathering,
object: nil)
NotificationCenter.default.addObserver(self,
selector: #selector(didStart),
name: NSNotification.Name.NSMetadataQueryDidStartGathering,
object: nil)
NotificationCenter.default.addObserver(self,
selector: #selector(didUpdate),
name: NSNotification.Name.NSMetadataQueryDidUpdate,
object: nil)
let result = metaDataQuery.start()
print("metaDataQuery.start() returned \(result)")
}
@objc func didStart(notification: NSNotification) {
let query: NSMetadataQuery = notification.object as! NSMetadataQuery
print("didStart found \(query.results.count) items")
}
@objc func didFinish(notification: NSNotification) {
print("didFinish")
}
@objc func didUpdate(notification: NSNotification) {
print("didUpdate")
}
这将打印以下内容:
didStart found 0 items
metaDataQuery.start() returned true
didStart
被调用,但 didFinish
和 didUpdate
从未被调用。如果我用 ==
或 ==[cd]
替换谓词中的 like
,我会得到相同的结果。将 NSMetadataQueryUbiquitousDocumentsScope
更改为 NSMetadataQueryUbiquitousDataScope
无效。我错过了什么?
同一个问题好像在这个论坛上已经提出过好几次了,但是我没有找到任何满意的答案。
最佳答案
我想我找到了原因。你的代码
let metaDataQuery = NSMetadataQuery()
这实际上使得元数据查询成为本地对象,它的生命周期在函数作用域内,并在函数结束时被销毁。那怎么行呢?请将其设为成员字段。
关于swift3 - NSMetaDataQuery 未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43131977/
我正在尝试使用 NSMetaDataQuery 在 iCloud 中探索我的应用可用的文件。我能够开始查询,但它永远不会结束。这是我的代码。 func report1() { let file
我正在寻找一个可以从 Cocoa API 中使用的类,以在整个系统上执行 Spotlight 搜索。我查看了 NSMetadataQuery 并相信这是这个类,但是我不明白如何做到这一点;主要是NSP
我正在尝试创建一个带有谓词的 NSMetadataQuery。在某一时刻,我可能想要收集 iCloud 在另一时刻可能拥有的所有图像的所有视频。别的什么都不要,就是搜视频或者搜图。不能同时进行。 我创
使用在 iOS 10 上运行的 xcode 8。尝试组合一个 super 简单的 NSMetadataQuery。现在腰部差不多一天了。设法让它进行查询,但它没有从我的 iCloud 返回任何文档,没
我尝试在我的 Mac 上列出我制作的应用程序的所有文件。我使用 NSMetadataQuery 但它不起作用。 代码如下: import Cocoa class ViewController: NSV
我正在尝试一些代码来使用 NSMetaDataQuery 获取基于应用程序路径 在捆绑标识符上。我正在关注在 apple dev 中找到的 hte 示例代码站点:静态 Spotlight 搜索实现。
我无法理解更新如何使用 NSMetadataQuery。 我正在尝试确定文件是否已从 iCloud 下载完成。我最初的查询很清楚地告诉我文件没有下载,我可以开始下载,但如果下载文件需要任何时间,我想设
我正在使用 UIManagedDocument 来管理我在 iCloud 中的文件。像这样设置 NSMetadataQuery 之后: iCloudQuery = [[NSMetadataQuery
我正在尝试执行 NSMetadataQuery在 本地 macOS 文件夹 (不在 iCloud 中)像这样使用 Appkit: let query = NSMetadataQuery()
我正在为我的应用程序制作一个备份管理器(通过 iCloud)。我做了一些测试,基本原理有效。但几天后就停了。我正在使用 NSMetadataQuery 搜索备份文件是否存在。我的备份文件名为例如Bac
原始搜索运行良好,但查询不会注意到对不可见项目的任何更改。 可以再次运行查询,它将找到更新。 查询非零,并且尚未取消订阅聚光灯通知。 这是错误还是预期行为? 我已经在几个不同的项目中对此进行了多次测试
我在聚光灯执行时对本地数据执行查询(NSMetadataQuery),并根据文件的修改日期对结果进行排序,到目前为止一切正常。但我无法理解如何对结果进行分组,例如我希望应用程序在一组中,文档在其他组中
我正在编写一个应用程序,可以在本地和 iCloud 上保存和加载文档。本地工作正常,但我在使用 iCloud 时遇到问题。 文档被保存为一个包 - UIDocument 读取和写入一个 NSFileW
我正在执行 NSMetadataQuery,并获取文件和目录的所有 URL。 func initSearchQuery(){ print("\(logClassName): initSearc
我有以下代码: // Main thread NotificationCenter.default.addObserver( self, selector:#selector(queryDid
默认情况下,NSMetaDataQuery 结果通知在主线程上接收。似乎您必须在主线程上调用 query.startQuery,但您可以使用 [query.setOperationQueue:] 设置
我尝试使用 NSMetadataQuery 和 NSPredicate 来搜索文件。经过几个小时的尝试和搜索解决方案(我是 swift 的新手),我有一个小例子。它编译得很好,但结果为零。我尝试了不同
当我禁用 iCloud 时,我似乎无法让 NSMetadataQuery 工作。我输入了有效的搜索 URL,但它从未注册为完成: //Check for iCloud NSURL *ubiq = [[
我试图限制 NSMetadataQuery 项的范围。我知道有 -setSearchScope: 方法(请参阅 docs ),但它只能让我决定项目将在哪些目录中搜索。 如果我需要从范围中排除一个或多个
在我的 Mac 应用程序中,我有一个 NSMetadataQuery 来查看应用程序的 iCloud 目录。当用户决定从应用程序内启用 iCloud 时,我按以下顺序执行以下操作: 调用 [[NSFi
我是一名优秀的程序员,十分优秀!