6

我已经阅读了 Apple 文档和 Ray Wenderlich 的教程。看来我被迫使用 UIDocument 所以我在文档中阅读了它。我发现使用基于文档的方法是有效的。

我的问题是我不想被特定于平台(iOS)的技术所束缚,因此我的应用程序有自己的模型,从头开始制作,只继承自 NSObject。这包括保存/加载。

现在,我需要将 iCloud 与我的旧模型集成在一起。我将如何以一种优雅/有效的方式来保持我的旧模型实现并能够集成 iCloud?

4

1 回答 1

10

您不会以任何方式被迫使用UIDocument. 您可以通过NSFileManager和使用 iCloud NSMetadataQuery。一般的做法是:

创建文件时

  • 在本地创建文件,就像没有 iCloud 一样正常
  • 用于-[NSFileManager setUbiquitous:itemAtURL:destinationURL:error:]将文件传输到 iCloud 存储。
  • NSMetadataQuery(如有必要)使用或轮询 URL 资源值检查上传进度。

打开文件时

  • 用于NSMetadataQuery定位 iCloud 常驻文件
  • 用于-[NSFileManager startDownloadingUbiquitousItemAtURL:error:]开始下载或将本地副本与云副本同步。
  • NSMetadataQuery使用或通过轮询 URL 资源值来检查上传进度[NSURL resourceValuesForKeys:]

编辑文件时

  • 使用NSFileCoordinatorubiquity 守护程序协调您的文件访问。
  • 用于NSFilePresenter获取文件更改的通知。

这在 WWDC 2012(也许是 2011 年,我不记得)的会议中都有介绍,您需要的类和方法都在 iOS 文档中。

于 2013-03-26T16:37:57.937 回答