SqlLite с реальным устройством не работает, но на симуляторе работает - PullRequest
0 голосов
/ 02 января 2019

Я использую sqlLite с этой библиотекой , поэтому, когда я запускаю на симуляторе, он работает хорошо, но когда я пытаюсь запустить на реальном устройстве, это выдает мне эту ошибку

Ошибка:

/ var / mobile / Контейнеры / Данные / Приложение / B8B355F9-6378-4862-9D06-84DA3FD06366 / Документы
2019-01-02 19: 54: 23.476422 + 0200 Тест [3626: 1280621] [logging-persist] не может открыть файл в строке 42249 из [95fbac39ba]
2019-01-02 19: 54: 23.476491 + 0200 Test [3626: 1280621] [logging-persist] os_unix.c: 42249:(0) открыть (/var/mobile/Containers/Data/Application/B8B355F9-6378-4862-9D06-84DA3FD06366/DocumentsTest.sqlite3) - неопределенная ошибка: 0 не удается подключиться к БД, ошибка: Ошибка домена = SQLite.Код результата = 0 "(null)", [:]

и этот код, который я устанавливаю для подключения к dp:

    import Foundation
    import SQLite
    import SQLite3

    class Database{

    static let shared = Database()
    public let connection: Connection?
    public let databaseName = "Test.sqlite3"

    init() {
        let dbPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first as! String
        print(dbPath)
        do{
            connection = try Connection("\(dbPath)\(databaseName)")
        }catch{
            connection = nil
            let nserror = error as NSError
            print("Can't connect to DB, Error is: \(nserror), \(nserror.userInfo)")
        }
    }
}

1 Ответ

0 голосов
/ 09 января 2019

Вам необходимо добавить "/"

 connection = try Connection("\(dbPath)/\(databaseName)")
...