NSlogging / println Swift中的SQLite db文件位置

时间:2014-08-21 19:21:30

标签: ios sqlite core-data swift

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

这是变量。

    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
    }()

2 个答案:

答案 0 :(得分:2)

有一个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

答案 1 :(得分:0)

您可以通过两种方式完成此操作。

  

第一种方式

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

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

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

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

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

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)")
    }