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

时间:2012-12-07 21:13:21

标签: ios sqlite trigger.io fmdb

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

  1. 如何导入第三方库以供使用?我想要包含的FMDB library的哪些部分&我该如何添加libsqlite3.dylib? FMDB也应该针对ForgeModule和ForgeModuleResources吗?我查看了有关此问题的docs,但我很难专门将这些说明应用于FMDB。

  2. 您能否详细了解一下这个好的文件结构会是什么样的?

  3. 您是否建议使用FMDB,是否有其他选项可以更好地使用触发器?另外,ForgeInspector的ARC是否正确?

  4. 基本上我正在寻找一个可以遵循的大纲以及一个sqlite包装器推荐。

    谢谢!

1 个答案:

答案 0 :(得分:2)

  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标题并使用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解决这个问题,所以这似乎是一个好主意。