SQLite和Swift,数据库存储在哪里

vof42yt1  于 2023-08-02  发布在  Swift
关注(0)|答案(2)|浏览(161)

我对iOS很陌生。我尝试学习如何使用SqLite创建数据库。我一直在寻找,我可以找到这个教程:www.techotopia.com/index.php/An_Example_SQLite_based_iOS_8_Application_using_Swift_and_FMDB
我可以让它工作,但我有几个问题。如果我理解的话,SqLite数据库是在ViewController.swift中创建的,他们给予的名字是contacts.db,但是那个文件在哪里呢?我在项目导航器中看不到它,在文件和文件夹中也看不到它。这就是问题所在:SqLite数据库存储在哪里?
这是创建数据库的代码部分:

override func viewDidLoad() {
    super.viewDidLoad()

    let filemgr = NSFileManager.defaultManager()
    let dirPaths =
    NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
            .UserDomainMask, true)

    let docsDir = dirPaths[0] as! String

    databasePath = docsDir.stringByAppendingPathComponent(
                    "contacts.db")

    if !filemgr.fileExistsAtPath(databasePath as String) {

        let contactDB = FMDatabase(path: databasePath as String)

        if contactDB == nil {
            println("Error: \(contactDB.lastErrorMessage())")
        }

        if contactDB.open() {
            let sql_stmt = "CREATE TABLE IF NOT EXISTS CONTACTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT)"
            if !contactDB.executeStatements(sql_stmt) {
                println("Error: \(contactDB.lastErrorMessage())")
            }
            contactDB.close()
        } else {
            println("Error: \(contactDB.lastErrorMessage())")
        }
    }
}

字符串

x4shl7ld

x4shl7ld1#

只需在控制台中打印您的路径:

let docsDir = dirPaths[0] as! String

databasePath = docsDir.stringByAppendingPathComponent(
                "contacts.db")

println(databasePath)

字符串
它将在您的CoreSimulator目录中。
在控制台上打印路径后。您可以使用Finder中的**Go > Go To Folder...**命令。
在iOS 7中,我们提供了应用程序文件夹
库>应用程序支持>iPhone模拟器
表单iOS 8
库>开发者/CoreSimulator

ibps3vxo

ibps3vxo2#

func getSQLitePath() -> String? {
    // Get the URL for the app's "Documents" directory
    if let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
        let databaseURL = documentsDirectory.appendingPathComponent("myDb.sqlite")
        return databaseURL.path
    }
    return nil
}

字符串
//示例用法:

if let path = getSQLitePath() {
        print("SQLite database path: \(path)")
    } else {
        print("SQLite database not found.")
    }

相关问题