ViewController中的SQLite错误14

时间:2018-07-19 09:41:54

标签: ios swift sqlite grdb

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 Simulatorr

2 个答案:

答案 0 :(得分:2)

SQLite错误代码14表示

  

无法打开数据库文件。

您可以从此处获取描述:https://sqlite.org/c3ref/c_abort.html

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

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

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

答案 1 :(得分:1)

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