4

我正在尝试为我的 CoreData 应用程序选择支持 iCloud 的最佳方法。

我认为一个好的策略应该是创建一个 SingleTon 类来处理所有 CoreData 和 iCloud 的东西,并将一个 ManagedObjectContext 传递给应用程序。

此类应处理用户更改其 iCloud 帐户或 iCloud 被禁用的情况。为此,我需要使用多个 NSPesistentStore,一个用于 iCloud,一个用于 iCloud 不可用的情况,并在需要时迁移数据。正确的?

我的主要问题是,使用 UIManagedDocument 类或传统的 CoreData 堆栈来创建一个处理应用程序的 CoreData/iCloud 基本逻辑的单例类的优缺点是什么?

来自 WWDC 2012 的代码示例也可以与 CoreData 普通堆栈的 UIManagedDocument 一起使用吗?

4

1 回答 1

3

使用更适合您的应用程序的那个......这几乎取决于您。不过,一般来说,UIManagedDocument对于以文档为中心的应用程序(如 Apple 的 iWork 应用程序)效果更好,而直接使用 Core Data 堆栈对于不以文档为中心的应用程序效果更好。

WWDC 2012 session 227 中的示例代码更适合您的单例想法——我不确定如果您正在使用它会有所帮助UIManagedDocument,因为该类管理自己的核心数据堆栈。

于 2012-07-18T00:21:11.830 回答