在Swift中NSlogging / println SQLite数据库文件的位置
所以我想弄清楚我的swift IOS应用程序在哪里存储它的SQLite数据库文件。 我知道applicationsDocumentsDirectory存储目录。 我需要find一种方法来打印它在控制台或NSLog它。 我是新来的迅速和IOS的发展,所以我在这里遇到麻烦。 我试着只是在另一个类中调用variables,也只是在clojure中没有成功的NSLogging。 有任何想法吗?
这是variables。
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 }()
有一个更简单的方法来获取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.我们可以使用NSSearchPathForDirectoriesInDomains()方法获取应用程序文档目录的引用。
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).last! as String
常量.documentDirectory表示我们正在寻找Document目录。
常量.userDomaininMask将我们的search限制在我们的应用程序的沙箱中。
引用文件或目录的首选方式是使用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)") }