Swift get Documents目录返回空字符串

Swift get Documents目录返回空字符串,swift,Swift,根据我写的下一个代码: let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String let files = NSFileManager().enumeratorAtPath(documentsPath) var myString:String = "/" while let file: AnyObject = files?.nextO

根据我写的下一个代码:

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?

我在文档中查找了

你应该考虑使用NSF文件方法 URLsForDirectory:inDomains:和 URLForDirectory:inDomain:APPLICATEFORURL:create:错误:。哪个回报 URL,这是首选格式

以下几点非常有效:

    let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
    println(urls[0])

也就是说,您的代码失败了,因为NSSearchPathForDirectoriesInDomains返回的数组中的项不是字符串。如果您想保留原始代码,只需将
更改为String
,将
更改为NSString

,这可能是Apple SDK中的一个bug
NSSearchPathForDirectoriesInDomains
正在返回一个
NSPathStore2
对象数组,这些对象可以强制转换为
NSStrings
,但不能转换为
Strings