これは私の最初のDBプロジェクトですので、私はいくつかの問題に直面しています。うまくいけばあなたは私を助けることができる! 私はFMDBを使用して既存のDBにアクセスしています。私が "Select * From films"のようなsimpelクエリを実行しようとすると、 "no such table"のようなものが返されます。私はIPhone Simulatorのフォルダを見て、DBを見つけましたが、それは空でした。私の次のステップは、このメソッドを含めることでした:即時開始後にデータベースをコピー
func copyDatabaseIfNeeded() {
// Move database file from bundle to documents folder
let fileManager = FileManager.default
let documentsUrl = fileManager.urls(for: .documentDirectory,
in: .userDomainMask)
guard documentsUrl.count != 0 else {
return // Could not find documents URL
}
let finalDatabaseURL = documentsUrl.first!.appendingPathComponent("foo.db")
if !((try? finalDatabaseURL.checkResourceIsReachable()) ?? false) {
print("DB does not exist in documents folder")
let documentsURL = Bundle.main.resourceURL?.appendingPathComponent("foo.db")
do {
try fileManager.copyItem(atPath: (documentsURL?.path)!, toPath: finalDatabaseURL.path)
} catch let error as NSError {
print("Couldn't copy file to final location! Error:\(error.description)")
}
} else {
print("Database file found at path: \(finalDatabaseURL.path)")
}
}
しかし、このメソッドは動作しません。私はDidFinishLaunchingから電話しています。
これは、エラーメッセージは次のとおりです。
私は間違った方法を使用していますかが間違って実装されている()
OverBurned/Library/Developer/CoreSimulator/Devices/B5EAE004-A036-4BD5-A692-C25EF3875D25/data/Containers/Bundle/Application/5ABA8D38-7625-4F98-83E9-4266A3E5B6B0/GameOne.app/foo.db, NSUnderlyingError=0x600000053230 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
?
私はそれが簡単に代わりFMDBの私の最初のDBアプリのsqlite.swiftライブラリを使用することを発見しました。チェックアウトの価値があるかもしれません。 – Martheli
あなたのエラーメッセージが投稿したコードと一致しません。そして、あなたは本当にオプションを適切に扱う方法をいくつか学習する必要があります。 – rmaddy