2014-06-05 12 views
22

我加libsqlite3.0.dylib到我的項目,然後我嘗試使用下面的代碼導入:斯威夫特無法導入SQLITE3的iOS

import UIKit 
import sqlite3 

class Dataware: NSObject 
{ 

} 

但它給我這個錯誤:

沒有這樣的模塊'sqlite3的'

回答

44

將它添加到您的橋接-Header.h文件:

#import <sqlite3.h> 

這是導入任何C語言庫的主要機制。

如果您還沒有一個橋接-Header.h文件:

  1. 添加文件轉職Header.h(或更一般地(項目名)-Bridging-Header.h
  2. 圍棋到您的項目的構建設置選項卡
  3. 查找「Objective-C橋接頭」最簡單的方法是搜索橋接
  4. 輸入您在第一步中創建的文件的名稱和路徑,可能是(ProjectName )/(ProjectName) - Bridge-Header.h
+0

我在哪裏添加到我的項目? – PREMKUMAR

+0

我添加了這個文件,我導入sqlite3.h但.swift我使用var dbsql = sqlite3()這一行。但使用未解決的標識符'sqite3'錯誤已到達 – PREMKUMAR

7

當一個人想sqlite的增加框架目標,module.map需要
因爲SQLite是不映射,並因此只是做:
1.在項目中創建文件「模塊/ module.map 「
2.從傘頭創建模塊:

module sqlite3 [system] { 
     header "/Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/usr/include/sqlite3.h" 
     link "sqlite3" 
     export * 
    } 

*改變Xcode6-Beta5.app的路徑正確的
3.連接映射文件到你的項目,搜索」進口'建立設置'並放置完整路徑到模塊文件

+0

此解決方案爲我工作時嘗試將sqlite添加到我的swift框架 – Ben

+0

Hi @ben。你能否詳細說明你的答案。我不知道如何添加新模塊 –

+1

Hi @RatikantaPatra,添加新的模塊映射,您需要:[1]創建名爲module.map的文件[2]添加想要的模塊信息(如我的答案)[3 ]在Xcode轉到生成設置 - >設置Swift編譯器 - >搜索路徑 - >導入路徑到您放置模塊的目錄。映射文件 – Ben

5

我們需要將SQLite3的頭文件導入視圖控制器,以便編譯器可以看到組成API的函數和其他定義。

無法將頭文件直接導入到Swift代碼中,因爲SQLite3庫沒有打包爲模塊。

解決這個問題的最簡單方法是在項目中添加一個橋接頭。一旦你有一個橋接頭,你可以添加其他頭文件,這些頭文件將由Swift編譯器讀取。有幾種方法可以添加橋接文件。我們將使用兩者中較簡單的一種,即臨時向項目添加一個Objective-C類。現在我們來做。

文件➤新建➤文件....在對話框的iOS的部分,選擇 可可觸摸類,按下一步。將該類命名爲Temporary,將其作爲子類NSObject,將語言更改爲Objective-C,然後按Next。在下一個屏幕中,按創建按鈕。 當你這樣做時,Xcode會彈出一個窗口詢問你是否要創建一個橋接頭。新聞。 現在,在Project Navigator中,你會看到新類(Temporary.mTemporary.h)和橋接報頭,這就是所謂的SQLite 持久性橋接-Header.h的文件。刪除Temporary.m和Temporary.h文件 - 你不再需要它們了。選擇橋接報頭在編輯器中打開它,然後添加下面一行到它:

#進口< sqlite3.h>

現在,編譯器可以看到的SQLite3庫和頭文件,我們可以寫更多的代碼在ViewController.swift

就是這樣!

3

嗨,請使用SWIFT 3

  1. 前往構建階段選項卡
  2. 轉到與庫鏈接二進制子選項卡,請按照下列步驟

    在Xcode 8.3.3。

    (a)點擊+按鈕來添加sqlite的框架,然後搜索sqlite的,那麼你可以看到libsqlite3.0.tbd和libsqlite3.tbd

    (B),然後選擇只libsqlite3.tbd(不要加兩因爲編譯器不能找到sqlite3的stuct當你的viewController聲明)

  3. 然後添加橋接-Header.h文件(因爲SQLite是不是在寫SWIFT)

  4. 彌合名稱應該是你的項目名 - 橋接報頭.h文件(僅用於命名約定,不是強制性的)
  5. 在橋接頭文件
  6. 轉到構建設置標籤寫#import <sqlite3.h>

    (一)在構建設置標籤頁上搜索斯威夫特編譯器 - 常規選項,並設置YES安裝Objective-C的兼容性頭

    (b)設置你的名字和路徑在Objective-C的橋接報選項頭文件(或者你可以簡單地將橋接頭文件)