Swift get Documents Directory返回空字符串

时间:2014-10-19 11:30:35

标签: swift

根据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中执行此命令。

enter image description here

然而,它在游乐场工作; 它不适用于我创建的任何项目

let docdir = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String + "Test.txt"

返回正确的路径wtf?

1 个答案:

答案 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

即可