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

  • 我该如何导入要使用的第三方库?我要包括FMDB library的哪些部分以及如何添加libsqlite3.dylib? FMDB是否也应以ForgeModule和ForgeModuleResources为目标?我已经看过有关docs的内容,但是很难将这些说明专门应用于FMDB。
  • 您能给我一个更详细的想法,说明一个好的文件结构是什么样的吗?
  • 您甚至建议使用FMDB,是否有其他选项可以更好地与触发器配合使用?另外,ForgeInspector ARC是否可以纠正?

  • 基本上,我正在寻找要遵循的轮廓以及sqlite包装器的建议。

    谢谢!

    最佳答案

  • 这里涵盖了将第三方代码包含到您的iOS插件中:http://docs.trigger.io/en/v1.4/modules/native/external_libraries.html#ios

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

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

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

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

    请注意,在上传插件版本时,您需要添加一个iOS构建步骤以包括SQLite框架-​​请参见http://docs.trigger.io/en/v1.4/modules/native/native_build_steps.html#add-ios-system-framework
  • 如果您的插件名为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
    
  • 我们没有在内部使用FMDB,因此没有丰富的经验。但是,我确实知道尝试将以C语言为中心的API塞入Objective-C代码非常痛苦(我在想AddressBook.framework)。 FMDB旨在解决SQLite的问题,因此这似乎是个好主意。
  • 关于ios - 如何使用fmdb为本地trigger.IO插件构建本地ios数据库。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13771051/

    10-10 00:40