我正在使用Squeal访问我的应用的Sqlite数据库。我想把它写成一个Singleton帮助器类,但我无法弄清楚如何创建db
的类全局版本。
以下是整个文件的代码:
import Foundation
import Squeal
class DatabaseHelper {
static let sharedInstance = DatabaseHelper()
let databaseFile = "record_store.db"
private init() {
let db = Database(path:databaseFile)
// Create the table
db?.createTable(
"Records",
definitions: [
"ID INTEGER PRIMARY KEY AUTOINCREMENT",
"Artist TEXT",
"Album TEXT",
"Gnere TEXT",
"Year TEXT",
"Size TEXT",
"Speed Text"
]
)
NSLog("Database Created")
}
func Insert() {
NSLog("Inserting stuff")
}
func Delete() {
NSLog("Deleting stuff")
}
}
那么如何让全班的db
可以访问?我试着宣布
let db
和
let db = Database(path:databaseFile)
但两者都会抛出我不知道如何处理的错误。
答案 0 :(得分:2)
我还使databaseFile
一直保密。我认为你不需要其他人访问文件名,只需要访问实际数据库。
import Foundation
import Squeal
class DatabaseHelper {
static let sharedInstance = DatabaseHelper()
private let databaseFile = "record_store.db"
let db: Database
private init() {
db = Database(path:databaseFile)
// Create the table
db?.createTable(
"Records",
definitions: [
"ID INTEGER PRIMARY KEY AUTOINCREMENT",
"Artist TEXT",
"Album TEXT",
"Gnere TEXT",
"Year TEXT",
"Size TEXT",
"Speed Text"
]
)
NSLog("Database Created")
}
func Insert() {
NSLog("Inserting stuff")
}
func Delete() {
NSLog("Deleting stuff")
}
}
答案 1 :(得分:0)
在初始使用之外:
let db:Database
然后在init更改中:
let db = Database(path:databaseFile)
要:
db = Database(path:databaseFile)