2015年10月4日日曜日

[xcode7] swift2.0 sqliteをつかう

■ sqlite.tbdでなくを指定する方法libsqlite3.dylib
Framework追加下部Add other..ボタン
通常は/usrにいけないので、「cmd +  shift + G」で /usr/lib/を指定
libsqlite3.dylibを選択


■ Bridge-Header.hを作成
#import を書く

build settingにあるObjectiveC-Bridging Headerに指定
$(SRCROOT)/$(PROJECT)/xxxxxxxxxxxxx.h

これで、SQLiteがswiftでつかえるようになるので、buildも、コード補完もするようになる
sqlite.tbdでうまくいかなかったと思って、むりやりlibsqlite3.dylibをもってきたが、
Bridge-Header.hをちゃんと設定したらsqlite.tbdでも問題ないようだ。


■ tableの作成(swift2.0)
        var documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
        documentsPath = (documentsPath as NSString).stringByAppendingPathComponent("main.sqlite")
        print(documentsPath)
        
        var db:COpaquePointer = nil;
        sqlite3_open(documentsPath, &db)
        
        let sql1="CREATE TABLE IF NOT EXISTS dbm (key text PRIMARY KEY,value text)";
       
        var zErrMsg :UnsafeMutablePointer = nil;
        sqlite3_exec(db, (sql1 as NSString).UTF8String , nil, nil, &zErrMsg);

ここまでて、テーブルの作成を確認


■ ここまでするなら、簡単にObjective-cで書いてbindingする方が簡単な気がする