根据How to find NSDocumentDirectory in swift?我写了下一个代码:
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let files = NSFileManager().enumeratorAtPath(documentsPath)
var myString:String = "/"
while let file: AnyObject = files?.nextObject() {
myString += (file as String + "/")
}
println(myString)
但实际问题是,在我调试程序时,在执行NSSearchPathForDirectoriesInDomains
命令后,documentsPath等于(String)“”。此外,我正在尝试不在MainViewController中执行此操作,我正在尝试在TableViewController中执行此命令。
然而,它在游乐场工作; 它不适用于我创建的任何项目
let docdir = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String + "Test.txt"
返回正确的路径wtf?
答案 0 :(得分:2)
我查看了NSSearchPathForDirectoriesInDomains
的文档,并说,
您应该考虑使用NSFileManager方法 URLForDirectory:inDomains:和 URLForDirectory:inDomain:appropriateForURL:创建:错误:。哪个回归 网址,这是首选格式。
以下工作完美:
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
println(urls[0])
也就是说,您的代码失败了,因为NSSearchPathForDirectoriesInDomains返回的数组中的项不是字符串。如果您想保留原始代码,只需将as String
更改为as NSString