如何在非基于文档的应用程序上集成iCloud?
我已经阅读了苹果文档和Ray Wenderlich的教程。 看来我不得不使用UIDocument,所以我在文档中阅读它。 我发现使用基于文档的方法是有效的。
我的问题是我不想被绑定在特定于平台(iOS)的技术,因此我的应用程序有自己的模型,从头开始只从NSObjectinheritance。 这包括保存/加载。
现在,我需要将iCloud与我的旧模型一起整合。 我将如何以一种优雅/有效的方式来实现我的旧模式实施,并能够整合iCloud?
你不会被迫使用UIDocument
。 您可以通过NSFileManager
和NSMetadataQuery
使用iCloud。 一般的做法是:
创build文件时
- 照常在没有iCloud的情况下在本地创build文件
- 使用
-[NSFileManager setUbiquitous:itemAtURL:destinationURL:error:]
将文件传输到iCloud存储。 - (如有必要)使用
NSMetadataQuery
或轮询URL资源值检查上载进度。
打开文件时
- 使用
NSMetadataQuery
来定位iCloud驻留文件 - 使用
-[NSFileManager startDownloadingUbiquitousItemAtURL:error:]
开始下载或同步本地副本与云副本。 - 使用
NSMetadataQuery
或使用[NSURL resourceValuesForKeys:]
轮询URL资源值来检查上载进度。
编辑文件时
- 使用
NSFileCoordinator
来协调您的文件访问与无处不在的守护进程。 - 使用
NSFilePresenter
获取文件更改的通知。
这些都在WWDC 2012会议(也许2011年,我不记得)的会议中讨论过,你需要的类和方法都在iOS文档中。