2
import GRDB

class MyView: UIViewController{
    override func viewDidLoad() {
    super.viewDidLoad()
        do{
            let dbPool = try DatabasePool(path: "/path/to/database.sqlite")
        }catch let error{
        print(error)
    }
    }
}

错误是打印 SQLite 错误 14

什么是 SQLite 错误 14?

首先使用GRDB并首先调用SqlLite

为什么要引发错误?

IOS 11.0 Swift 4.0 Grdb 2.10.0

构建到 Iphone8 模拟器

4

2 回答 2

3

SQLite 错误代码 14 表示

无法打开数据库文件。

你可以从那里得到描述:https ://sqlite.org/c3ref/c_abort.html

对于您的问题,路径到底是什么?您是否对路径进行了硬编码?不要硬编码路径,使用类似的模式

let path = NSHomeDirectory() + "/Documents/database.sqlite"

获取数据库的路径,看看您的问题是否可以解决。

于 2018-07-20T03:39:25.773 回答
1

错误 14 的最佳解决方案是更改存储数据库文件的目录中的设置,以便为数据库文件提供写访问权限。为此,您可以运行以下命令,以防您使用的 Web 服务器作为 www-data 运行。;)

于 2018-07-19T09:54:38.183 回答