【问题标题】:NSlogging/println SQLite db file location in SwiftSwift 中的 NSlogging/println SQLite db 文件位置
【发布时间】:2026-02-02 13:30:02
【问题描述】:

所以我想弄清楚我的 swift IOS 应用程序在哪里存储它的 SQLite db 文件。我知道 applicationsDocumentsDirectory 存储目录。我需要找到一种在控制台或 NSLog 中打印它的方法。我是 swift 和 IOS 开发的新手,所以我在这里遇到了麻烦。我尝试在另一个类中调用该变量,也只是在 clojure 中调用它,但没有成功。有什么想法吗?

这是变量。

    lazy var applicationDocumentsDirectory: NSURL = {
    // The directory the application uses to store the Core Data store file. This code uses a directory named "arux-software.onsite_childcare" in the application's documents Application Support directory.
    let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
    return urls[urls.count-1] as NSURL
    }()

【问题讨论】:

    标签: ios sqlite core-data swift


    【解决方案1】:

    easier way获取sqlite位置:

    println(NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString)
    

    提供没有时间戳的输出,如下所示:

    /Users/tooti/Library/Developer/CoreSimulator/Devices/AB5B3350-F891-420B-88D5-E8F8E578D39B/data/Containers/Data/Application/38FBDC42-0D09-4A10-A767-17B576882117/Documents
    

    NSLog(NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString )
    

    提供带有时间戳的输出,如下所示:

    2015-01-23 23:31:57.373 RAACTutor[6551:140531] /Users/tooti/Library/Developer/CoreSimulator/Devices/AB5B3350-F891-420B-88D5-E8F8E578D39B/data/Containers/Data/Application/38FBDC42-0D09-4A10-A767-17B576882117/Documents
    

    【讨论】:

      【解决方案2】:

      您可以通过两种方式做到这一点。

      第一道

      1.我们可以使用 NSSearchPathForDirectoriesInDomains() 方法获得对应用程序文档目录的引用。

      let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).last! as String
      

      常量 .documentDirectory 表示我们正在寻找 Document 目录。

      常量 .userDomaininMask 将我们的搜索限制在应用程序的沙箱中。

      引用文件或目录的首选方式是使用 URL。

      let documentsURL = URL(string: documentsPath)!
      print(documentsURL)
      

      第二种方式

      2.使用FileManager.default.url 函数。

       let fileManager = FileManager.default
      
          do {
              let documentsURL = try fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
              print(documentsURL)
      
          } catch let error as NSError {
              print("Could not save \(error), \(error.userInfo)")
          }
      

      【讨论】: