验证 iCloud 容器上的文档是不是存在
Posted
技术标签:
【中文标题】验证 iCloud 容器上的文档是不是存在【英文标题】:Verify document existence on iCloud container验证 iCloud 容器上的文档是否存在 【发布时间】:2012-06-26 18:16:29 【问题描述】:我正在使用 NSMetadataQuery 来检测我的应用程序 iCloud 容器中是否存在文档,即使该文件尚未在本地下载也是如此。
带有 NSFilePresenter 的 NSFileCoordinator 可以做同样的事情吗?验证文件是否存在,即使它在本地仍然不可用?
更新: 我已经使用了一段时间 NSMetadataQuery 来检测文件是否存在于我的 ubiquity 容器中。但至少在 10.8.2 上进行测试,它并不总是有效。我收到了很多关于文件存在的误报。
我知道其他人一直在使用我相信的文件协调器。 有没有人对此有任何意见,或者更好地给我举个例子来说明如何使用它们?
【问题讨论】:
【参考方案1】:如果您已经拥有一个您尝试使用 NSMetadataQuery
查询的 iCloud 中项目的有效 URL。
您可以使用initWithPresenter:nil
创建NSFileCoordinator
,它适用于所有文件演示者。
因此,您是否已经知道要搜索的项目的 URL 似乎有点问题。在创建NSPredicate
方面,使用NSMetadataQuery
显然会更方便,当您还不知道它们的URL 时,它将返回您的iCloud 通用容器中的项目的枚举。
(我无法帮助解释您的误报,尽管我倾向于检查您正在为您正在查询的文件创建的NSPredicate
,或者我会查看您是否设置了通知为NSMetadataQueryDidUpdateNotification
和NSMetadataQueryDidFinishGatheringNotification
准备好了,而且你还没有取消它们。)
【讨论】:
以上是关于验证 iCloud 容器上的文档是不是存在的主要内容,如果未能解决你的问题,请参考以下文章