OS X和iPhone OS之间Core Data文件的可移植性

Gia*_*iao 2 iphone macos core-data

我有一个在iPhone上使用Core Data的现有应用程序.有时会将应用程序的数据更新为App Store的更新.在我完美的世界中,构建一个应用程序来使用OS X应用程序编辑更新中的数据并将sqlite数据库复制到我的iPhone应用程序包中将是一种相对无痛的方法.

是否可以在OS X和iPhone OS之间移动sqlite数据库(假设它们使用相同的数据模型)?

我应该注意哪些事情是不可移植的(如32位与64位数据)?

我有没有更好的选择?

Bra*_*son 6

SQLite格式在具有相同数据模型的Mac和iPhone应用程序之间是相同的.生成一个Mac应用程序来编辑你的数据库是非常简单的(我为我的iPhone应用程序做这个).实际上,您可以使用您的数据模型并快速拖放它的界面(来自核心数据编程指南常见问题解答):

在Mac OS X v10.5及更高版本中,您可以在Interface Builder中将Core Data Entity项从Library拖到窗口或框中.然后,Interface Builder会显示一个面板,允许您从当前打开的Xcode项目中选择所需的实体.

请注意,您还可以在Interface Builder中创建和配置NSController实例.与创建用户界面的情况一样,您可以在Xcode中按住Option键单击数据建模工具中的实体(或从库中选择Core Data Entity项),但是将其拖到Interface Builder文件窗口中.为了编辑一个对象,创建了一个NSObjectController实例; 为了编辑许多对象,创建了一个NSArrayController实例.

我还要查看Core Data Editor,它在您编译的托管对象模型中加载,并允许您从中编辑数据库.