ios - 如何使用 fmdb 为 native trigger.IO 插件构建 native ios 数据库。

标签 ios sqlite trigger.io fmdb

我想通过 native 插件使用 native 数据库进行存储。由于 Apple 的基本 API 是纯 C 语言,因此我想使用第三方库,例如 FBDB。理想情况下,我们的 JavaScript 将构造“查询”并将其发送到我们的 native 插件进行处理,但这并不是绝对必要的。

  1. 如何导入第 3 方库以供使用? FMDB library有哪些部分我想包含&如何添加libsqlite3.dylib? FMDB 是否也应该以 ForgeModule 和 ForgeModuleResources 为目标?我看过docs关于这一点,但我很难将这些说明专门应用于 FMDB。

  2. 您能否更详细地介绍一下良好的文件结构是什么样的?

  3. 您是否会推荐使用 FMDB,是否有更适合触发器的替代选项?另外,ForgeInspector ARC 是否正确?

基本上,我正在寻找可遵循的大纲以及 sqlite 包装器建议。

谢谢!

最佳答案

  1. 此处介绍了如何将第三方代码添加到您的 iOS 插件中:http://docs.trigger.io/en/v1.4/modules/native/external_libraries.html#ios .

    要使用 FMDB,您应该包含 repo并将 .h.m 文件复制到您的 ForgeModule 项目中(记住将这些文件添加到您的 ForgeModule 目标中):

    add FMDB files to project

    接下来,将 libsqlite3.dylib 框架添加到 ForgeModule 目标(在 ForgeModule 项目中)和 ForgeInspector 目标(在 ForgeInspector 项目中):

    add libsqlite framework

    您还需要为 fmdb.m 禁用 ARC(如上所示)。

    之后,您应该能够导入 FMDB header 并使用 ForgeInspector 来试用您的插件。

    请注意,在上传插件版本时,您需要添加 iOS 构建步骤以包含 SQLite 框架 - 请参阅 http://docs.trigger.io/en/v1.4/modules/native/native_build_steps.html#add-ios-system-framework .

  2. 如果您的插件名为 fmdb(我们建议增加命名空间,以避免冲突),您必须拥有 fmdb_API.hfmdb_API.m - 我通常将它们放在自己的组和文件夹中。我还将第三方代码放入其自己的组和文件夹中,例如:

    % find fmdb FMDB_lib
    fmdb
    fmdb/fmdb_API.h
    fmdb/fmdb_API.m
    FMDB_lib
    FMDB_lib/FMDatabase.h
    FMDB_lib/FMDatabase.m
    FMDB_lib/FMDatabaseAdditions.h
    FMDB_lib/FMDatabaseAdditions.m
    FMDB_lib/FMDatabasePool.h
    FMDB_lib/FMDatabasePool.m
    FMDB_lib/FMDatabaseQueue.h
    FMDB_lib/FMDatabaseQueue.m
    FMDB_lib/fmdb.m
    FMDB_lib/FMResultSet.h
    FMDB_lib/FMResultSet.m
    
  3. 我们没有在内部使用过 FMDB,因此没有丰富的经验。然而,我确实知道尝试将以 C 为中心的 API 硬塞到 Objective-C 代码中是相当痛苦的(我正在考虑 AddressBook.framework )。 FMDB 旨在为 SQLite 解决这个问题,因此这似乎是一个好主意。

关于ios - 如何使用 fmdb 为 native trigger.IO 插件构建 native ios 数据库。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771051/

相关文章:

c# - Xamarin iOS app.config 文件

ios - UITableViewController 和 SQLite 语句中的土耳其语字符

android - 选择 * 从 0 < 0

trigger.io - 如何使用Trigger.io缓存json数据?

iphone - ASIHTTPRequest 假人

ios - UINavigationController,如何在第二级 View Controller 中隐藏选项卡然后在第三级 View Controller 中显示选项卡

javascript - 使用 createAudioPlayer 播放音频时出错

android - Trigger.io 1.4 无法在应用程序启动时可靠地触发 connectionStateChange

php - 即使提供了错误的用户名和密码,PHP登录脚本也会重定向

c# - 使用 System.Data.SQLite.Linq 时生成错误的 SQL 语句