2

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

  1. 如何导入第 3 方库以供使用?我要包含FMDB 库的哪些部分以及如何添加 libsqlite3.dylib?FMDB 是否也应该针对 ForgeModule 和 ForgeModuleResources?我查看了有关此的文档,但很难将这些说明专门应用于 FMDB。

  2. 你能给我一个更详细的想法,一个好的文件结构会是什么样子吗?

  3. 您甚至会推荐使用 FMDB,是否有其他选项可以更好地使用触发器?此外,ForgeInspector ARC 是否正确?

基本上,我正在寻找要遵循的大纲以及 sqlite 包装器推荐。

谢谢!

4

1 回答 1

2
  1. 此处介绍了在您的 iOS 插件中包含第三方代码:http: //docs.trigger.io/en/v1.4/modules/native/external_libraries.html#ios

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

    将 FMDB 文件添加到项目中

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

    添加 libsqlite 框架

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

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

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

  2. 如果您的插件称为 fmdb(我们建议对其进行更多命名空间以避免冲突),您必须拥有fmdb_API.h并且fmdb_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 解决这个问题,所以这似乎是个好主意。

于 2012-12-17T16:10:42.240 回答