将 Android SQLite 移植到 iOS

Posted

技术标签:

【中文标题】将 Android SQLite 移植到 iOS【英文标题】:Port Android SQLite to iOS 【发布时间】:2014-03-18 22:57:45 【问题描述】:

我有编写 android 代码的经验,但我对 ios 完全陌生。我决定学习它的一个好方法是创建一个 Android 应用程序,然后将其移植到 iOS。与其拥有一个完整的 Android 应用程序并知道它不会轻易移植,我决定在编写时移植每个部分。

在得知 iOS 也有 SQLite 之后,我开始创建 Android SQLite 数据库,我认为这将是一个让我轻松上手的地方。

我一直在寻找如何移植我编写的 Android 代码,但我能找到的内容很少。向另一个方向移植似乎更常见。更糟糕的是,SQLite 上似乎缺少 iOS 文档,因为在我转向的任何地方都建议使用名为 CoreData 的东西。

我已经拥有contract 中的所有 SQL 语句,包括所有 SQL 表定义和索引,并将它们移植到 C。但是,我没有找到任何关于在 iOS 上使用合同的示例。

是否有关于此的任何文档或示例?如果不是,我是不是误会了什么?

再次,这里是 iOS 新手,所以只是一个简单的方向会有所帮助。

谢谢。

【问题讨论】:

【参考方案1】:

看看FMDB。它是 SQLite 的 Objective-C 包装器。它语法简单,类似于 Android 中的 SQLiteDatabase。据我所知,iOS 开发与 Android 合同没有任何相似之处。 尝试使用 FMDB 中的 FMDatabaseQueue。它允许以线程安全的方式访问数据库。

附: CoreData 是适用于 iOS 和 OS X 的 ORM。如果您有 Android 合约,使用 FMDB 将它们移植到 iOS 会容易得多。

【讨论】:

这看起来像我想要的。不过,我可以使用一个使用 FMDB 的简单应用程序示例。但这不是我发布的问题,所以我将其标记为已回答。谢谢。【参考方案2】:

Core Data 有自己的数据结构,你可以看看它,你会看到这样的东西:

在此处输入图片说明

您模型中的表以 Z 为前缀,因此您可以在 Android 中使用 SQL 查询完美地查询此 SQLite 数据库。

注意:使用 Simulator 运行应用后,您可以在文件夹中找到此 SQLite 文件:

/Users/<you_name>/Library/Application Support/iPhone Simulator/<ios_version>/Applications/<app_id>/Documents/<app_name>.sqlite

【讨论】:

这是个糟糕的主意。 Core Data 确实使用“Z”作为其表结构,但这并不意味着您可以通过这种方式构建 Core Data 模型。 Core Data 不是 SQLite。 图片丢失。【参考方案3】:

如果您已经有一个 SQLite 3 数据库文件,您可以直接将所述数据库拖放(或通过网络下载)到您的 iOS 应用程序中并使用 LabQLite 控制它,它可以用作 Objective- 之间的 ORM C/Swift 和 SQLite。

associated model class generator 也很方便。

使用 LabQLite 和生成器中的模型设置您的 iOS 应用程序应该相当快。

免责声明:我开发了这两种产品。

【讨论】:

以上是关于将 Android SQLite 移植到 iOS的主要内容,如果未能解决你的问题,请参考以下文章

JDBC 到 android.sqlite:SELECT/DELETE ... WHERE field IN (?)

Android学习记录—将java中的多线程下载移植到Android中③

sqlite3移植到arm linux

如何使用 Qt 在 Android 中读取现有的 SQLite 数据库?

lighttpd+sqlite3移植到嵌入式设备上

xamarin.Android SQLite存储