谢谢你的帮助。
我正在尝试将核心数据添加到我的项目中,并且我在哪里以及如何将实际数据添加到持久性存储中(我假设这是原始数据的位置)。
我将有1000<对象,所以我不想使用plist方法。从我的搜索,似乎有xml和csv方法。有没有办法可以使用SQL进行输入?
用户不会更改数据,并且手动输入数据文件,因此我不需要在运行时更新这些文件,此时我不限于任何类型的文件 - 最轻的语法是首选。
再次感谢您的帮助。
答案 0 :(得分:2)
您可以从xml / csv / json文件加载数据,并在应用程序的第一个午餐上创建数据库(如果数据库不在那里,则读取数据并创建它)。 更好/更快的方法可能是在您的应用程序中发布sqllite数据库。您可以在模拟器上以任何格式解析文件,使用所有实体创建数据库,然后从ApplicationData中获取它,并将其作为资源添加到您的应用程序中。
答案 1 :(得分:1)
虽然我确定可以使用较轻的文件类型,但我会在应用程序包中包含一个JSON文件,您可以从中导入初始数据集。
更新:有些人推荐使用XML。 NSXMLParser几乎和JSONKit一样快(但比大多数其他解析器快得多),但XML语法比JSON重。因此,保存初始数据集的XML捆绑文件的权重将大于JSON中的权重。
答案 2 :(得分:0)
考虑到Apple考虑其持久存储实现细节的格式,运送预制的SQLite数据库并不是一个好主意。即字段和表格的名称可能在iOS版本/手机/您可以想到的任何隐藏变量之间进行更改。一般而言,您应该不关心如何格式化数据的序列化。
有关于在Apple开发者网站上导入数据的简短文章:Efficiently Importing Data
您应该以您认为合适的任何格式发送初始数据(XML允许您有效地进行增量解析,从而减少内存占用)并编写导入例程以便在需要导入数据时运行。
编辑:考虑到EliBud的评论,我仍然认为这种方法有点“不确定”...... Core Data使用的SQLite数据库的格式不是您想要生成的你自己(这很奇怪,简单地说,但仍然不是你真正依赖的东西)。
所以你想要使用在模拟器上运行的模拟应用程序并使用Core Data来创建数据库(根据EliBud的回答)。但你仍然需要将数据导入那个模拟应用程序!虽然在“真实”计算机上执行此操作而不是在移动设备上执行此操作可能是有意义的(即复制文件很容易,导入数据很困难),您实际上使用模拟器作为管理工具。
但是嘿,如果有效......