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

标签 iphone cocoa-touch sqlite sync

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

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

我该怎么做?有没有更好的方法在手机和桌面应用程序之间运行同步?如果是这样,是否有任何示例说明如何最好地做到这一点?

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

最佳答案

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

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

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

关于iphone - 我可以在桌面应用程序和我的 iPhone 应用程序之间共享 SQLite 数据库吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5470539/

相关文章:

iphone - UITextview委托(delegate)问题

iphone - 将 NSString 从一个 ViewController 传递到另一个 VC NSMutableArray

iphone - 如何对 barchart-coreplot 的条形进行动画处理

iphone - 核心图形库中的内存管理

ios - 我有一个可以在多个线程上访问的单例,它的每个数组都应该有一个单独的调度队列吗?

android - adb shell setprop log.tag.SQLiteStatements VERBOSE 什么都不做?

sql - SQLite 中针对相似度矩阵的关键字/短语搜索

iOS : What is the need of register cell before dequeuing in UITableView?

ios - 为什么这段代码有效?

android - Android SQLite 游标是否一次将所有记录加载到内存中?