Ich möchte meine lokale Datenbank verwenden. Dazu verwende ich FMDB.FMDB nichts anzeigen - swift
1.Ich hinzugefügt pod 'FMDB'
zu pod file
dann pod install
2.I schleppte meine Datenbank zu meinem Projekt (kashanmapDB_upgrade_3-4.db
).
3.I erstellt eine Klasse namens DatabaseManager.swift
meiner Klasse:
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)")
}
}
}
}
In meinem Controller ich eine Variable erstellt, um meine Klasse und rufen Sie meine Funktionen auf:
let db = DatabaseManager() // MARK: - View Lifecycle override func viewDidLoad() { super.viewDidLoad() createPageViewController() setupPageControl() db.openDatabase() db.query(queryString: "select * from Tags") }
aber meine Konsole nichts anzeigen. Wo ist mein Problem?
Wurde die Datenbank erfolgreich geöffnet? –
nicht gedruckt etwas wie 'Konnte Datenbank an nicht öffnen' oder 'geöffnete Datenbank' –
zuerst Ihre Datenbank in Dokumentverzeichnis kopieren und dann öffnen – Rivendell