所以我想知道我的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
}()
答案 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)")
}