iCloud 和非 UIDocument 文件

Posted

技术标签:

【中文标题】iCloud 和非 UIDocument 文件【英文标题】:iCloud and non-UIDocument files 【发布时间】:2015-06-11 14:10:08 【问题描述】:

我的应用读取和写入音频文件,使用 AVFoundation 的文件操作方法。

我想加入 iCloud 同步,以使我的应用程序的整个根 Documents 目录同步到云端。

我不太确定如何实现这一点。 Apple 文档说 iCloud 同步对于由UIDocument 管理的文件是免费的,并且需要为所有其他文件操作实现NSFileCoordinator

我是否需要在该文件协调器中以某种方式“包装”AVPlayerAVRecorder 的文件读取和创建调用?

【问题讨论】:

【参考方案1】:

如果是 UIDocument,您可能会在打开后获得 NSData。通过 UIDocument 保存数据也很方便。这种方法更可取,恕我直言。

在 NSFileCoordination 的情况下,您还应该在资源的包装对象中实现 NSFilePresenter 协议。

此外,您可以使用 NSFileManager 进行下载状态处理和资源可用性验证。另外,您可以通过- (BOOL)setUbiquitous:(BOOL)flag itemAtURL:(NSURL *)url destinationURL:(NSURL *)destinationURL error:(NSError **)errorOut.将您的本地文件放在iCloud中,在这种情况下,您可以自己处理同步过程。

【讨论】:

以上是关于iCloud 和非 UIDocument 文件的主要内容,如果未能解决你的问题,请参考以下文章

现有的 UIDocument 不会在 iCloud 上更新

UIDocument 的非 iCloud 使用

iOS 7:UIDocument / UIManagedDocument 和 iCloud 发生了啥?

在进入后台时将 UIDocument 上传到 iCloud

iCloud保存数据与UIDocument崩溃

当应用程序在后台时,如何检查我的 UIDocument 是不是已通过 iCloud 更新?