繁体   English   中英

如何将数据加载到Core Data?

[英]How to load data into Core Data?

谢谢你的帮助。

我正在尝试将核心数据添加到我的项目中,并且我在哪里以及如何将实际数据添加到持久性存储中(我假设这是原始数据的位置)。

我将有1000个<对象,所以我不想使用plist方法。 从我的搜索,似乎有xml和csv方法。 有没有办法使用SQL进行输入?

用户不会更改数据,并且手动输入数据文件,因此我不需要在运行时更新这些文件,此时我不限于任何类型的文件 - 最轻的语法是首选。

再次感谢任何帮助。

您可以从xml / csv / json文件加载数据,并在应用程序的第一个午餐时创建数据库(如果数据库不在那里,则读取数据并创建它)。 更好/更快的方法可能是在您的应用程序中发布sqllite数据库。 您可以在模拟器上以任何格式解析文件,使用所有实体创建数据库,然后从ApplicationData中获取它,并将其作为资源添加到您的应用程序中。

虽然我确定可以使用较轻的文件类型,但我会在应用程序包中包含一个JSON文件,您可以从中导入初始数据集。

更新 :有些人推荐使用XML。 NSXMLParser几乎和JSONKit一样快(但比大多数其他解析器快得多),但XML语法比JSON重。 因此,保存初始数据集的XML捆绑文件比JSON中的重量更大。

考虑到Apple考虑其持久存储实现细节的格式,运送预制的SQLite数据库并不是一个好主意。 即,iOS版本/手机/您可以想到的任何隐藏变量之间的字段和表格的名称可能会发生变化。 通常,您应该不关心如何格式化数据的序列化。

有一篇关于在Apple开发者网站上导入数据的简短文章: 有效导入数据

您应该以您认为合适的任何格式发送初始数据(XML允许您有效地进行增量解析,从而减少内存占用)并编写导入例程以在需要导入数据时运行。

编辑:考虑到EliBud的评论,我仍然认为这个方法有点“不确定”...... Core Data使用的SQLite数据库的格式不是你想要自己生成的东西(它很奇怪,简单地说,和仍然不是你应该真正依赖的东西)。

因此,您需要使用在模拟器上运行的模拟应用程序,并使用Core Data创建数据库(根据EliBud的回答)。 但是您仍然需要将数据导入到模拟应用程序中! 虽然在“真实”计算机上执行此操作而不是在移动设备上执行此操作可能是有意义的(即复制文件很容易,导入数据很困难),您实际上使用模拟器作为管理工具。

但是,嘿,如果有效......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM