我需要在iOS(7+)应用程序的数据库中导入一些数据。
当我使用Coredata时,最好的方法似乎是创建一个种子db:https://www.objc.io/issues/4-core-data/importing-large-data-sets-into-core-data/ 这意味着我必须创建第二个项目(例如:桌面应用程序),该项目负责创建和填充数据库。
我首先关心的是:这个项目的db模型应该与app一样吗?因此,如果应用程序具有包含许多实体的数据库,则必须在第二个项目的模型中复制整个结构,并且对于任何将来的更新,必须保持两个结构相同。 我是对的吗?
这似乎要求完成和维护,而且查找和复制种子sqlite文件的过程并不简单。
那就是说,因为我需要将大约80k个条目导入到一个表中,所以在iOS应用程序中包含csv文件并在第一次启动时导入所有数据呢?
感谢任何提示, DAN
答案 0 :(得分:0)
CoreData
不是db it,所以你可以拥有比传统db更灵活的模型
如果您选择维护的模型与服务器使用或由API
返回的模型不同,则可以在保存到CoreData之前使用中间模型。
我个人使用Mantle。
因此,结构将是CoreData
< - > Mantle
< - > API
。
这将为您提供更大的灵活性,因为您可以从API接收任何结构,并使用Mantle
来管理您在应用中使用的结构。
ps:通常,您不想经常更改数据模型。如果您的数据模型不断变化,可能需要重新考虑结构
请注意,如果您有80k条目,这可能需要很长时间
This tutorial向您展示您需要做什么