【问题标题】:sqlite3 undeclared type in Swift, using bridgingheader.h [duplicate]sqlite3在Swift中未声明的类型,使用bridgingheader.h [重复]
【发布时间】:2015-05-02 14:54:17
【问题描述】:

我已经看过几篇关于此的帖子,并且我已经关注并重新检查了建议,但我仍然得到了

Use of undeclared type 'sqlite3'

我的 BridgingHeader.h 文件包含

#ifndef areabook_Bridging_Header_h
#define areabook_Bridging_Header_h

#import <sqlite3.h>

#endif

Link Binary With Libraries 有 libsqlite3.0.dylib。我也使用过 libsqlite3.dylib。构建永远不会进入链接阶段,所以这不是问题。)

BridgingHeader.h 在构建设置 Objective-C Bridging Header 中被引用。 我知道我正确引用了 BridgingHeader.h,因为如果我更改

<sqlite.h> to <sqlitexx.h> 

编译器报错

'sqlite3xx.h' file not found

当我使用正确的名称 (sqlite.h) 时,我没有收到错误。

在 BridgingHeader.h 中使用 sqlite.h,编译器在我的 swift 代码中给出了这个错误。

import UIKit

class Db: NSObject {

    var database: sqlite3 = nil
                     Use of undeclared type 'sqlite3'
. . .

什么,哦,我错过了什么?

【问题讨论】:

标签: ios swift sqlite


【解决方案1】:

按照以下步骤操作:- 使用 FMDB,它是 SQLite 数据库的 Objective-C 包装器。你可能会问如何在 Swift 项目中使用 Objective-C 框架。

简而言之,您必须:-

    1. Download FMDB framework     
    2. Add it to your project  
    3. Create a Bridging Header
    3.1 remember to change Defines Module in Build Settings for FMDB to Yes
    4. Use import "sqlite3"  where you wanna use it

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多