2013-09-25 40 views
0

我目前有一个iOS应用程序,它为应用程序的数据后端提供了一个sqlite数据库。这些数据基本上是一个信息清单。在这个应用程序中,我允许用户将记录标记为书签(在数据库中设置一个值)。这里的问题是,当我通过互联网(通过软件更新)向应用程序发布更新以更改数据时,新下载的数据库将清除旧数据库,从而删除用户自定义设置。iOS编程建议请求REF sqlite/iOS应用程序设计

任何关于简单的方法来搜索当前的sqlite数据库的变化,临时存储他们,然后导入新的数据库,并将更改传输到新的数据库?我可以在使用sqlite DB后端的同时使用Core Data元素吗?也许一个键/值对系统?

任何建议将不胜感激。

感谢

-LK

回答

1

我做它的方式是这样的:

对于您的新版本,例如重命名文件.sqlite FOO-v2.sqlite。然后,在初始化期间,检查旧版本的sqlite文件是否存在 - 如果是,请复制必要的信息,然后删除旧的sqlite文件。

+0

我所做的更新是将新数据库复制到一个临时文件,IE tempfile.sql,然后一旦我验证下载成功,我删除旧的数据库文件并将tempfile重命名为预期的应用程序。在这个窗口中,我可以做一些我猜想的事情。最简单的方法是打开这两个sqlite文件并使用各种连接在它们上运行查询,试图弄清楚它或者甚至可能。我可以做的另一件事是在我删除旧的数据库文件之前,将所有记录加载到键/值对中,然后替换数据库并反向执行该过程。Thx用于建议.. – Lkabo

+0

如果您不想要要通过数据库来完成,您还可以将信息存储在钥匙串或iCloud中。真的取决于你有多少。一般来说,我认为只需打开另一个连接并同步数据库就更简单了。 –

+0

谢谢迈克,伟大的想法 – Lkabo