下班了。。。趕緊 把我利用Swift利用單例管理FMDB數據庫的方法分享出來:
// Created by 秦志偉 on 14-6-12.
import UIKit
class ZWDBManager: NSObject {
//前提將FMDBDatabase的頭文件加入到橋接文件中
var dataBase:FMDatabase?
var lock:NSLock?
//創建單例
class func shareInstance()->ZWDBManager{
struct qzSingle{
static var predicate:dispatch_once_t = 0;
static var instance:ZWDBManager? = nil
}
//保證單例只創建一次
dispatch_once(&qzSingle.predicate,{
qzSingle.instance = ZWDBManager()
})
return qzSingle.instance!
}
//構造方法中對數據庫進行創建並打開
init(){
var path:String = NSHomeDirectory().stringByAppendingString("/Documents/MCA.db")
lock = NSLock()
dataBase = FMDatabase(path:path)
if dataBase!.open(){
var createImgTableSql:String = "create table if not exists ImgInfo(Id integer primary key autoincrement,picName varchar(256),picPath varchar(256),FID varchar(256),userID varchar(256))"
//在這裡要傳入兩個參數:第一個為創建表的sql,第二個為多參數(個人理解,之前只傳入sql但是一直報錯,個人理解Swift中可返回多參數,傳入多參數可能也如此)
var isSuccessed:Bool = dataBase!.executeUpdate(createImgTableSql,withArgumentsInArray: [])
if isSuccessed {
println("成功!")
}else{
println(dataBase!.lastErrorMessage())
}
}
}
}
別的就不多說了,代碼中注釋了一些。個人也在學習階段,如有錯誤,歡迎批評指正。轉載請注明出處~!!!!分享一個交流群:愛瘋、愛Coding:209476515