gpt4 book ai didi

ios - 如何在 iOS 中使用现有的 SQLite 数据库?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:09:30 25 4
gpt4 key购买 nike

我最近开始了一个 iOS 项目,需要使用一个独立的数据库,该数据库会在有更新时从 Internet 下载。这是我的第一个 iOS 项目,所以我在设计下载机制之前尝试让功能正常工作。

我选择了 SQLite 包装器 SWLite.swift ( https://github.com/stephencelis/SQLite.swift ) 并准备好我的查询和 TableView 。但是我无法连接到数据库。我已经尝试了这里几乎所有其他问题/答案,但都没有成功。

例如,我将 SQLite 数据库放入 Assets.xcassets 并尝试 let path = Bundle.main.path(forResource: "myDb", ofType: "db")! ,然后应用程序崩溃(因为我返回了 nil——大概​​是因为找不到路径)。同样,我尝试了其他人的建议,包括在我的 Mac 上创建一个文件夹,将文件放入其中,将 .bundle 附加到文件夹名称,然后将其放入 Assets... 再次,nil

有人可以建议吗?我查看了 Apple Docs,但无法真正找到我要找的东西——再一次,这是我第一次,所以也许我做错了。

最佳答案

1.: 获取数据库文件的有效路径

看起来您实际的主要问题是获取数据库文件的有效路径。如果数据库文件位于 Assets 中,我也找不到任何方法让它工作。因此,不要将数据库文件保存在您的 Assets 文件夹中,而是将其添加到您当前目标的 Build Phases 设置中的Copy Bundle Resources 列表中。 如果您的文件名为 myDb.db,您可以获得如下有效路径:

let dbUrl = Bundle.main.url(forResource: "myDb", withExtension: "db")!
let dbPath = dbUrl.path

2.: 访问你的数据库(不复制它)

现在可以访问您的数据库而无需(手动?)复制它。只需使用已经提到的 SQLite.swift图书馆:

db = try! Connection(dbPath)

注释:由于问题有点早,也许在询问时无法像这样访问数据库文件。但是,它现在确实有效。我唯一没有明确检查的是写入数据库。不过,至少只读访问确实很有魅力。

关于ios - 如何在 iOS 中使用现有的 SQLite 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44870206/

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