我可以在桌面应用程序和我的iPhone应用程序之间共享SQLite数据库

时间:2011-03-29 09:37:43

标签: iphone cocoa-touch sqlite sync

我正在写一个应用程序,这两部分。桌面应用程序在桌面(可能是AIR应用程序)上运行,而iPhone应用程序在iPhone上运行。我是iPhone开发的新手。

两个应用程序都可以使用完全相同的sqlite数据库。理想情况下,我想以某种方式将sqlite数据库文件复制到移动应用程序的Documents文件夹并在那里使用它,反之亦然利用iTunes同步。

我该怎么做?有没有更好的练习方式在手机和桌面应用程序之间运行同步?如果有的话,有没有最好的例子呢?

我发现的大多数解决方案都假设数据库以单独的格式存储,例如MySQL,并且需要以某种方式对数据进行序列化和反序列化。我只是想尝试使用相同的文件并复制文件。

1 个答案:

答案 0 :(得分:3)

SQLite是一个单用户数据库。如果你去“复制数据库”路线,那么你就有丢失数据的风险。如果桌面用户添加了数据并且iOS用户添加了数据,则复制文件时某人的数据将会丢失。

您可以实现自己的“同步”算法,该算法可识别数据库之间的更改并使其保持同步。这可能是一种痛苦,但这是一种常见的解决方案,也是我所推荐的。我已经这样做了桌面/ iOS应用程序。

您可以选择使用数据库服务器,但这需要网络访问才能连接到它。