2013-01-13 53 views
0

我们已经完成了一个使用coredata的iPhone应用程序的编写。 在更多版本中,我们计划添加一个iPad应用程序,该应用程序能够显示iPhone应用程序(以及corse修改,使用它)收集的数据,以便为用户提供更多交互功能。Coredata iPhone到iPad/Mac与iCloud?

我的问题是:是否可以将现有的coredata(已安装的iphones应用程序)移动到云端并使用iPad应用程序读取数据?

如果是:你能指出我从哪里开始的正确方向吗?

如果否:是否有另一种方法可以通过iPad应用程序访问使用iPhone应用程序创建的coredata?

+0

为什么不把它变成一个通用的应用程序?那么没有什么可以移动的。 iPad上的应用程序将自动从iPhone或iPod上使用的同一个无处不在的商店中检索用户的数据。 –

+0

我认为这是错误的 - 我们当然希望使其具有普遍性,而不是为ipad制作全新的应用程序。然而,它是否像你所建议的那样简单?或者从coredata(物理)过渡到coredata(云)会有很多问题? –

回答

3

当使用Core Data内置的iCloud支持时,无论您处于何种类型的设备中,只要核心数据堆栈以相同方式初始化即可。任何iOS设备或Mac都可以使用同一个iCloud存储,并且可以在另一个上读取其中创建的数据。

尽管一个关键细节:如果您已经拥有数据存储并且添加了iCloud支持,那么这些预先存在的记录不会自动迁移到云中。 iCloud基于事务日志工作,事务日志仅在保存更改时创建。不立即更改的现有数据不会生成事务,因此不会转到云。

如果您在添加iCloud时拥有现有数据,则需要将数据迁移到新的数据存储以强制处理这些现有记录的事务。你可以用NSPersistentStoreCoordinatormigratePersistentStore:toURL:options:withType:error:方法很容易地做到这一点。这并不难,但它并不总是显而易见的。

要开始使用,我首先建议您观看iCloud上的Apple WWDC视频 - 尤其是WWDC 2012的会话227,使用带有Core Data的iCloud。接下来,我建议极端的小心,因为截至今天,Core Data的iCloud支持仍然是,我们应该说,远不是最可靠的Apple API。

+0

非常感谢:)我会离开这里! –