【问题标题】:Using sqlite in framework在框架中使用 sqlite
【发布时间】:2016-04-23 07:31:14
【问题描述】:

我正在快速创建一个框架,我需要使用 sqlite

我已经导入#import <sqlite3.h> 来使用它,我正在将它写在 Xcode 创建的 .h 文件中。

但是在构建时,我收到了这个错误:

"include of non modular header inside framework module"

我已经搜索过这个问题,但找不到合适的答案来解决我的问题。

【问题讨论】:

  • 你的项目中是否通过Build Phase-> Link binary->Sqlite3..添加了sqlite3框架?
  • 你能在你的 Bridging-Header.h 文件中添加#import :
  • 在框架中你不能使用 Bridging-Header。它会给出错误。 :0: 错误:不支持使用带有框架目标的桥接头

标签: ios swift sqlite xcode7.1


【解决方案1】:

要在自定义框架中使用 SQLite,您需要将 sqlite3.h 文件直接包含到项目中,然后将该文件公开。

  • 要获取 .h 文件,请右键单击 Xcode 并选择“显示包内容”
  • 在搜索栏中,输入“sqlite3.h”
  • 在搜索区域选择Xcode

  • 将文件拖到您的项目中并选择“如果需要,复制项目”
  • 在项目导航器中选择 sqlite3.h 文件
  • 在实用程序窗格中,将目标成员资格更改为公开。

在你的伞头文件中,确保你添加了这一行:

#include "sqlite3.h"

(不要使用<sqlite3.h> 表单,因为您现在包含项目中的文件)

您可能会注意到伞形标题自动添加行#import <UIKit/UIKIt.h>,如下所示。如果您不需要 UIKit,请删除该行。

您可以在此处找到完整示例:https://github.com/AaronBratcher/ALBNoSQLDB

【讨论】:

    【解决方案2】:

    我缺少的是明确添加 sqlite3.h。添加 libsqlite3.tbd 库时不会自动添加。将 sqlite3.h 公开,然后将其作为伞形标题导入。

    【讨论】:

    • 如何公开?当我去构建短语并尝试包含 sqlite3.h 时,它只显示“sqlite3.tbd”
    • 同样的问题。如何将其公开?
    猜你喜欢
    • 2016-05-21
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    相关资源
    最近更新 更多