如何解决如何以异步方式访问 iCloud 文档文件
我正在尝试在我现有的应用程序中添加对 iCloud 文档的支持,但我很难做到这一点。
Apple 似乎更喜欢您为此使用 UIDocument
类。但是 UIDocument 不直接访问文件系统中的文件,它希望在 NSData 对象中维护文件内容的副本。在我的情况下,这根本不可行。我当前所有的代码和我使用的 3rd 方库的一半,直接使用文件系统上的文件,而不是 NSData。重写所有这些代码根本不可行。
当不使用 UIDocument 类时,Apple 希望您使用 NSFileCoordinator
来协调对文件内容的访问。我试图用我的代码来做到这一点,但 NSFileCoordinator 上的方法似乎期望所有的读取和写入都将在一个同步序列中完成。 NSFileCoordinator 的所有方法都将一个块作为参数,并期望在该块内执行所有读/写操作。据我所知,当块返回时,您不能再进行任何文件访问。
这对我来说也是不可行的。我的一些代码和第 3 方库在后台线程上以异步方式进行读/写。我可以确定代码需要访问文件内容的时间段的开始和结束,所以如果有一个单独的 requireAccess
方法,并且在 relinquishAccess
上有单独的 NSFileCoordinator
,那将使我能够实现目标。但似乎并非如此。
我不清楚 NSFilePresenter
在这方面的作用是什么。一些文档,尤其是 NSFilePresenter 中的 relinquishPresentedItemToReader()
文档似乎表明您实际上可以单独获取/放弃访问权限:
如果您想在读者完成任务时收到通知, 将您自己的块传递给读取器并使用该块重新获取 供您自己使用的文件或网址。
所以具体问题:我需要以异步方式执行以下步骤:
有人知道是否可以这样做,以及如何进行第 1 步和第 3 步吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。