Ich möchte eine bestehende Datenbank mit FMDB
öffnen. Die DB sollte eine sqlite
Datenbank mit der Endung .db
sein.Öffnen DB mit FMDB in Swift
mein Code: statisch let geteilt: DBManager = DBManager()
let databaseFileName = "/mydb.db"
var pathToDatabase: String!
var pathNSURL: NSURL!
var database: FMDatabase!
override init() {
super.init()
let documentsDirectory = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString) as String
let zwerg = documentsDirectory + databaseFileName
let pathNSURL = NSURL(fileURLWithPath: zwerg)
let pathString = documentsDirectory + databaseFileName
pathToDatabase = pathNSURL.path
print(pathToDatabase)
}
func firstQuestion() -> Bool {
if openDatabase(){
let query = "SELECT * FROM movie"
do {
let result = try database.executeQuery(query, values: nil)
print(result)
}
catch {
print(error.localizedDescription)
}
database.close()
return true
}
return false
}
func openDatabase() -> Bool {
if database == nil {
print(FileManager.default.fileExists(atPath: pathToDatabase))
if FileManager.default.fileExists(atPath: pathToDatabase) {
print("Database set new path -> File exists")
database = FMDatabase(path: pathToDatabase)
}
}
if database != nil {
print("Database != nil")
if database.open() {
print("Database is open in != nil")
return true
}
}
return false
}
Im die Methode firstQuestion() von einem VC Aufruf:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
print(DBManager.shared.firstQuestion())
}
Mein Problem ist, dass die fileExists- Methode gibt immer false zurück. Der Dateiname ist korrekt. Dies ist mein erstes Projekt mit einer Datenbank in swift, also habe ich vielleicht einen dummen Fehler gemacht ... Irgendwelche Vorschläge?
Danke für Ihre Hilfe!
Dies war der Weg: file: /// Users/Overburned/Library/Developer/CoreSimulator/Geräte/B5EAE004-A036-4BD5-A692-C25EF3875D25/Daten/Container/Daten/Anwendung/3BC1CBA7-48E1-4A17-A456-108667E7F773/Dokumente/mydb.db Aber es war nicht die Lösung Danke trotzdem – OverBurned
mit Ihrer zweiten Lösung bekomme ich diese Fehlermeldung: fataler Fehler: unerwartet gefunden Null beim Entpacken ein optionaler Wert – OverBurned
Versuchen Sie, aktualisiert, es funktioniert für mich – Alex