我的应用使用核心数据,我想要一些默认条目。 如何做到这一点的最佳做法是什么?
答案 0 :(得分:9)
如果您已经通过临时例程加载预加载数据以便在当前代码中进行测试,那么您无法使用它在模拟器目录中创建的sqlite文件(无需编写单独的Mac应用程序) )。
如果您尚未填写该数据库,您仍然可以编写一个支持该应用程序的iOS应用程序。您可能已经编写了将数据添加到商店的方法,因此您也可以使用它们来导入预加载数据。
无论哪种方式,你都可以从模拟器的目录中获取sqlite文件并将其添加到你的应用程序包中;首次启动时,您将把它复制到应用程序目录中的适当位置,然后再将Core Data指向它。如果它真的很大,那么缺点就是捆绑中会有一个副本而磁盘上会有另一个副本,但除了通过网络获取数据之外,你无法做到这一点。
正如其他人所建议的那样,如果数据量很小,您可以在首次启动时导入它,使用您已经编写的方法将数据添加为普通应用程序工作流程的一部分。
答案 1 :(得分:5)
请参阅CoreDataBooks example,其中包含首次启动时复制数据库的示例代码。
编辑:我已经创建了一个包含此功能的核心数据框架(在此处阅读:http://bikepress.org/?p=1120)。
答案 2 :(得分:4)
我只想创建一个数据库并将其添加到我的目标中,以便Xcode将其复制到应用程序包中。在第一次启动时,只需将其从应用程序包中复制到例如。文档目录或应用程序对数据库的期望。
答案 3 :(得分:3)
应用商店有Core Data Editor。或者,您可以为此特定数据库构建自己的简单mac应用程序并从那里进行管理。如果默认条目的数量很小,那么最好将它存储在plist或其他东西中,并在首次启动后将其加载到DB中。
答案 4 :(得分:0)
在iOS 5中,如果我将数据库文件放入资源包中,我的应用程序就被拒绝了。所以,我必须从互联网上下载数据库。