代码之家  ›  专栏  ›  技术社区  ›  Tristan Clet

Swift已连接到SQLite数据库,但我找不到该文件

  •  0
  • Tristan Clet  · 技术社区  · 7 年前

    here (开始使用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()
    }
    

    问题是斯威夫特向我确认他“成功打开了与数据库的连接”。但问题是我从未为数据库创建过文件。。。我不知道在哪里可以找到真正的文件。

    提前感谢您的帮助!

    1 回复  |  直到 7 年前
        1
  •  0
  •   Joakim Danielson    7 年前

    默认文件夹很可能是由Xcode创建的,类似 /Users/"your username"/Library/Developer/Xcode/DerivedData/<Project name>...

    要进行检查,可以在打开数据库的位置添加以下内容

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

    如果你看了教程,你会发现他们确实使用了一个特定的文件夹。