Swift get Документ Directory возвращает пустую строку
Согласно Как найти NSDocumentDirectory в 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)
Но на самом деле проблема в том, что при отладке программы documentPath соответствует (String) "" после выполнения команды NSSearchPathForDirectoriesInDomains
. Кроме того, я пытаюсь сделать это не в MainViewController, я пытаюсь выполнить эту команду в TableViewController.
![enter image description here]()
Однако он работает на детской площадке;
Это не работает для любого проекта, который я создаю
let docdir = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String + "Test.txt"
возвращает правильный путь, wtf?
Ответы
Ответ 1
Я просмотрел документацию для NSSearchPathForDirectoriesInDomains
, и он говорит:
Вам следует использовать методы NSFileManager URLsForDirectory: inDomains: и URLForDirectory: inDomain: appropriateForURL: создать: ошибка:. которые возвращаются URL-адреса, которые являются предпочтительным форматом.
И работает отлично:
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
println(urls[0])
Тем не менее, ваш код не работает, потому что элементы в массиве, возвращаемые NSSearchPathForDirectoriesInDomains, не являются строками. Если вы хотите сохранить исходный код, просто измените as String
на as NSString