gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:25 25 4
gpt4 key购买 nike

我想使用 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 - 我通常把它们放在他们自己的组里,放在他们自己的文件夹里。我还将第 3 方代码放在其自己的组和文件夹中,例如:

    % 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com