gpt4 book ai didi

swift - Xcode 9 - 在模拟器文件夹中找不到 .sqlite 数据库

转载 作者:行者123 更新时间:2023-11-28 07:50:19 25 4
gpt4 key购买 nike

所以几个月前我使用相同的方法来查找我的数据库。一旦 iPhone 6s 模拟器启动,我的 .sqlite 就会被复制到我的文档文件夹中。在那里我能够编辑数据库

但在安装新的 macOS 副本后,我不得不再次重新安装 xcode。我不确定我是否下载了新版本或相同版本。

我的问题:

我正在用 SQLite 数据库做一些本地实验,这意味着完成后我必须将数据库复制到闪存驱动器,但现在它消失了我不知道该怎么做

这是我目前获取正在运行的模拟器的文档文件夹的方法:

let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
print("Docs Path: \(documentsPath)")

但在运行该应用程序后,不确定是否复制了数据库,但我看到的只是一个空的“Documents”文件夹..

sim

下面是我如何在我的项目中获取数据库的引用:

sim2

我觉得我是唯一面临这个问题的人,而且非常令人沮丧。请帮忙!

编辑:

这是我使用数据库的方式:

 let path = Bundle.main.path(forResource: "rawand", ofType: "sqlite")
do {
let db = try Connection(path!)
} catch {
print(error)
}

最佳答案

您需要使用 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) 测试了这段代码,它正在运行。

关于swift - Xcode 9 - 在模拟器文件夹中找不到 .sqlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49859965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com