核心数据与现有的sqlite db

时间:2012-09-07 04:33:02

标签: ios sqlite core-data

  

可能重复:
  Migrate normal sqlite3 database to core data?

是否可以将现有的sqlite数据库加载到核心数据中?我遇到了麻烦,实际上在核心数据样本中我发现它包含一个带有z前缀到表名的db,以及其他属性。这个z有什么意义?此外,我在此博客http://ablogontech.wordpress.com/2009/07/13/using-a-pre-populated-sqlite-database-with-core-data-on-iphone-os-3-0/中看到使用核心数据创建数据库并加载它,这是一种解决方法,但不是将数据加载到核心数据的正确方法。我需要在表上做很多更新和查询,请建议是直接使用sqlite还是核心数据?如果是核心数据,请建议将现有sqlite文件导入核心数据的最佳方法

3 个答案:

答案 0 :(得分:7)

Core Data使用SQLite的事实应该是一个实现细节。实际上,Core Data文档明确指出,您不应以任何方式在Core Data之外访问数据库。

同样,您不应该在Core Data下强制使用自己的数据库。

如果要将现有数据库导入Core Data,则需要编写一些代码来迭代现有数据库中的每个条目,并创建相应的对象以插入到Core Data中。

FWIW,Z_ stuff是他们数据库中的核心数据装饰。

不要乱用数据库。现在,事实证明你可以用数据库做一些事情,但你真的不应该 - 除非你是专家 - 然后你仍然不应该,但可能会这样做。

答案 1 :(得分:3)

您想查看Ray Wenderlich关于将现有数据预加载到核心数据的教程:Check it out here 这是一个非常完整的教程,它将帮助您清除有关一起使用Sqlite和Core Data的一些概念。这是一个由三部分组成的教程。试一试。

答案 2 :(得分:0)

你最好听听这里的建议。鉴于内部数据库已经过装饰,您至少必须对自己的数据库执行相同操作才能使其有一半的工作机会。

如前所述,您应该在代码库中导入它,并为该任务编写一些一次性代码。这样,ios将为您本地照顾一切。