【问题标题】:Importing sqlite3.h to a Swift project via a Obj-C bridging header doesn't work通过 Obj-C 桥接头将 sqlite3.h 导入 Swift 项目不起作用
【发布时间】:2014-07-29 07:00:07
【问题描述】:

我创建了一个名为BridgingHeader.h 的文件,它只包含一行:

#import <sqlite.h>

当然,框架libsqlite3.dylib 也是导入的。

在我的构建设置中,我还将 Objective-C Bridging Header 的值设置为 &lt;ProjectName&gt;/Bridging-Header.h

但是……
当我将 import sqlite3 添加到我的 Swift 类时,它说它找不到模块 sqlite3

【问题讨论】:

  • SQLite 有一个 C 接口,而不是一个 Objective-C 接口。
  • @rmaddy 所以我必须在Obj-C 中写一个完整的包装器?
  • 已经有一个(不是我用过):FMDB。
  • 你不需要在你的 swift 类中导入,它是通过将它添加到你的桥接头来隐式完成的。也就是说,我还没有调用任何 sqlite3_open 变体的运气。

标签: objective-c sqlite swift


【解决方案1】:

对于任何想要直接使用 SQLite 3 的人,请参阅此 Gist:

https://gist.github.com/zgchurch/3bac5443f6b3f407fe65

【讨论】:

    【解决方案2】:

    感谢@trojanfoe,我现在正在使用一个库,它是sqlite3 框架的Objective-C 包装器。 (FMDB)

    通过在我的BridgingHeader.h 文件中导入ObjC 标头并使用该类而不在Swift 类中导入任何内容来使其工作。

    结论:桥接头只能导入Objective-C文件……

    【讨论】:

    • 您的结论不正确-您可以将 sqlite3.h 导入桥接头。请参阅下面的答案。
    • 您能否详细说明您是如何在BridgingHeader 文件中导入ObjC 标头的?我不知道该怎么做。
    • @flippex17 添加行:#import "yourheader.h"
    猜你喜欢
    • 1970-01-01
    • 2016-09-03
    • 2016-08-11
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多