0
我想使用我的本地数据库。 为此,我使用FMDB。FMDB不显示任何东西 - swift
1.I添加pod 'FMDB'
到pod file
然后pod install
2.我拖着我的数据库,我的项目(kashanmapDB_upgrade_3-4.db
)。
3.I创建了一个名为类DatabaseManager.swift
我的类:
import Foundation
import FMDB
class DatabaseManager {
private let dbFileName = "kashanmapDB_upgrade_3-4.db"
private var database:FMDatabase!
init() {
openDatabase()
}
func openDatabase() {
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let dbPath = URL(fileURLWithPath: paths).appendingPathComponent(dbFileName)
let str_path = Bundle.main.resourceURL!.appendingPathComponent(dbFileName).path
let database = FMDatabase(path: str_path)
/* Open database read-only. */
if (!(database?.open(withFlags: 1))!) {
print("Could not open database at \(dbPath).")
} else {
print("opened database")
self.database = database;
}
}
func closeDatabase() {
if (database != nil) {
database.close()
}
}
func query(queryString:String) {
if let db = database, let q = db.executeQuery(queryString, withArgumentsIn: nil) {
while q.next() {
let data = q.string(forColumn: "id")
// Do whatever here with fetched data, usually add it to an array and return that array
print("data a a \(data)")
}
}
}
}
以我控制器I创建的变量到我并且调用我的功能:
let db = DatabaseManager() // MARK: - View Lifecycle override func viewDidLoad() { super.viewDidLoad() createPageViewController() setupPageControl() db.openDatabase() db.query(queryString: "select * from Tags") }
但我的控制台没有显示任何东西。我的问题在哪里?
数据库是否成功打开? –
没有打印任何类似'无法打开数据库在'或'打开的数据库' –
首先将您的数据库复制到文档目录,然后打开 – Rivendell