使用SQLite.swift的Swift数据库类

时间:2016-02-12 03:26:09

标签: swift sqlite sqlite.swift

我正在尝试创建一个类来处理基于SQLite.swift的所有数据库交互并继续运行错误,因为连接(和其他相关对象)的初始化发生在try catch中。这是一个简化的例子来说明问题:

class DBUtil {
var db : Connection
let settings = Table("settings")
let key = Expression<String>("key")
let val = Expression<String>("val")

init() {
    let path = NSSearchPathForDirectoriesInDomains(
    .DocumentDirectory, .UserDomainMask, true
    ).first!

    let dbPath = "\(path)/geonames.sqlite3"

    do {
        self.db = try Connection(dbPath)
        try db.run(self.settings.create(ifNotExists: true) { t in
            t.column(key, unique: true)
            t.column(val)
        })
    } catch _ {

    }
}

func updateUserId(userId : String) {
    do {
        /* INSERT */
        let insert = settings.insert(key <- "user", self.val <- userId)
        let _ = try self.db.run(insert)
    } catch _ {
    }
}
}

但是xcode向我显示了以下错误:Return from initializer without initializing all stored properties当我必须在这样的try catch中初始化db连接时,我不确定如何满足这个要求。

0 个答案:

没有答案