我想使用本机插件使用本机数据库进行存储。由于Apple的基本API是纯C,我想使用第三方库,如FBDB。理想情况下,我们的javascript将构造'查询'并将其发送到我们的原生插件进行处理,但这不是绝对必要的。
如何导入第三方库以供使用?我想要包含的FMDB library的哪些部分&我该如何添加libsqlite3.dylib? FMDB也应该针对ForgeModule和ForgeModuleResources吗?我查看了有关此问题的docs,但我很难专门将这些说明应用于FMDB。
您能否详细了解一下这个好的文件结构会是什么样的?
您是否建议使用FMDB,是否有其他选项可以更好地使用触发器?另外,ForgeInspector的ARC是否正确?
基本上我正在寻找一个可以遵循的大纲以及一个sqlite包装器推荐。
谢谢!
答案 0 :(得分:2)
此处包含第三方代码到您的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.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解决这个问题,所以这似乎是一个好主意。