我想通过 native 插件使用 native 数据库进行存储。由于 Apple 的基本 API 是纯 C 语言,因此我想使用第三方库,例如 FBDB。理想情况下,我们的 JavaScript 将构造“查询”并将其发送到我们的 native 插件进行处理,但这并不是绝对必要的。
如何导入第 3 方库以供使用? 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 header 并使用 ForgeInspector 来试用您的插件。
请注意,在上传插件版本时,您需要添加 iOS 构建步骤以包含 SQLite 框架 - 请参阅 http://docs.trigger.io/en/v1.4/modules/native/native_build_steps.html#add-ios-system-framework .
如果您的插件名为 fmdb(我们建议增加命名空间,以避免冲突),您必须拥有
fmdb_API.h
和fmdb_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
我们没有在内部使用过 FMDB,因此没有丰富的经验。然而,我确实知道尝试将以 C 为中心的 API 硬塞到 Objective-C 代码中是相当痛苦的(我正在考虑 AddressBook.framework )。 FMDB 旨在为 SQLite 解决这个问题,因此这似乎是一个好主意。
关于ios - 如何使用 fmdb 为 native trigger.IO 插件构建 native ios 数据库。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771051/