几个月前,我使用相同的方法来查找我的数据库。一旦iPhone 6s模拟器启动,我的.sqlite
就会被复制到我的文档文件夹中。在那里我能够编辑数据库
但是在安装了新的macOS副本后,我不得不再次重新安装xcode。我不确定我是下载了新版本还是同一版本。
我的问题:
我正在使用SQLite数据库做一些本地实验,意味着在我完成后我必须将数据库复制到闪存驱动器,但现在它消失了我不知道该怎么做
这是我目前获取正在运行的模拟器的docs文件夹的方法:
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
print("Docs Path: \(documentsPath)")
但是在运行应用程序之后,不确定数据库是否被复制,但我看到的只是一个空的" Documents"文件夹..
以下是我在项目中获取数据库的参考资料:
我觉得我是唯一一个面临这个问题并且非常令人沮丧的人。请帮忙!
编辑:
这就是我使用数据库的方式:
let path = Bundle.main.path(forResource: "rawand", ofType: "sqlite")
do {
let db = try Connection(path!)
} catch {
print(error)
}
答案 0 :(得分:0)
您需要使用FileManager类将资源从捆绑包复制到Documents目录。
let fileManager = FileManager.default
guard let documentsPath = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else { return }
guard let sourceFilePath = Bundle.main.url(forResource: "test", withExtension: "txt") else { return }
let destinationPath = documentsPath.appendingPathComponent("test.txt")
print("[INFO] - destinationPath: \(destinationPath.absoluteString)")
if !fileManager.fileExists(atPath: destinationPath.path) {
print("[DEBUG] - File DOES NOT exist")
do {
try fileManager.copyItem(at: sourceFilePath, to: destinationPath)
} catch {
print(error)
}
} else {
print("[DEBUG] - File DOES exist")
}
我已经在模拟器中使用示例txt文件(test.txt)测试了此代码并且它正在运行。