首页 > 代码库 > Swift中利用单例管理FMDB数据库

Swift中利用单例管理FMDB数据库

下班了。。。赶紧 把我利用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,第二个为多参数(若第二个参数为空,则[]里面为空;若是多个参数则将对象存入参数数组,将整个数组当做第二个参数传入)
            var isSuccessed:Bool = dataBase!.executeUpdate(createImgTableSql,withArgumentsInArray: [])
            if isSuccessed {
                println("成功!")
            }else{
                println(dataBase!.lastErrorMessage())
            }
        }
        
    }
    
    
    
    
    
    
}
别的就不多说了,代码中注释了一些。个人也在学习阶段,如有错误,欢迎批评指正。转载请注明出处~!!!!分享一个交流群:爱疯、爱Coding:209476515