Swift подключен к БД SQLite, но не могу найти файл - PullRequest
0 голосов
/ 26 января 2019

Я новичок в Swift, и сегодня я следовал учебнику здесь (начало работы с SQLite). Поэтому мой код в основном такой же:

import Foundation
import UIKit
import Alamofire
import SwiftyJSON
import SQLite.Swift
import PlaygroundSupport

enum SQLiteError: Error {
    case OpenDatabase(message: String)
    case Prepare(message: String)
    case Step(message: String)
    case Bind(message: String)
}

class SQLiteDatabase {
    fileprivate let dbPointer: OpaquePointer?

    fileprivate init(dbPointer: OpaquePointer?) {
        self.dbPointer = dbPointer
    }

    deinit {
        sqlite3_close(dbPointer)
    }

    static func open(path: String) throws -> SQLiteDatabase {
        var db: OpaquePointer? = nil
        // 1
        if sqlite3_open(path, &db) == SQLITE_OK {
            // 2
            return SQLiteDatabase(dbPointer: db)
        } else {
            // 3
            defer {
                if db != nil {
                    sqlite3_close(db)
                }
            }

            if let errorPointer = sqlite3_errmsg(db) {
                let message = String.init(cString: errorPointer)
                throw SQLiteError.OpenDatabase(message: message)
            } else {
                throw SQLiteError.OpenDatabase(message: "No error message provided from sqlite.")
            }
        }
    }
}

let db: SQLiteDatabase

do {
    db = try SQLiteDatabase.open(path: "")
    print("Successfully opened connection to database.")
} catch SQLiteError.OpenDatabase(_) {
    print("Unable to open database. Verify that you created the directory described in the Getting Started section.")
    PlaygroundPage.current.finishExecution()
}

Проблема в том, что Свифт подтверждает мне, что он "успешно открыл соединение с базой данных". Но дело в том, что я никогда не создавал файл для базы данных ... и я не знаю, где я могу найти фактический файл.

Путь к базе данных должен быть racine, поскольку переменная установлена ​​в папку по умолчанию ("")

Заранее благодарю за помощь!

1 Ответ

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

Скорее всего, папкой по умолчанию является папка, созданная Xcode, что-то вроде /Users/"your username"/Library/Developer/Xcode/DerivedData/<Project name>...

. Чтобы проверить, вы можете добавить следующее, где вы открываете базу данных

let current = FileManager.default.currentDirectoryPath
print(current)

Если вы посмотрите научебник, вы заметили, они использовали определенную папку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...