Изучив множество (много!) вопросов о быстрой игровой площадке, чтобы даже создать этот код, я все еще борюсь.
Я поместил текстовый файл в папку Resources
содержимого пакета, и он отображается как псевдоним (ссылка) в запущенных временных файлах, созданных игровой площадкой (/var/folders/ ...
).
import UIKit
let bundle = NSBundle.mainBundle()
let myFilePath = bundle.pathForResource("dict1", ofType: "txt")
println(myFilePath) // <-- this is correct, there is a shortcut to the Resource file at this location
var error:NSError?
var content = String(contentsOfFile:myFilePath!, encoding:NSUTF8StringEncoding, error: &error)
println(content!) // <-- this is *NOT* the file contents [EDIT: see later note]
// Demonstrate there's no error
if let theError = error {
print("\(theError.localizedDescription)")
} else {
print("No error")
}
Проблема в том, что content
отображается в выводе игровой площадки как Some "apple\ngame\nhow\nswift\ntoken"
, а не содержимое файла, как ожидалось.
Это поиск файла, потому что, если я изменю имя файла, возникнут ошибки. Любые советы по получению содержимого файла?
Xкод 6.1
EDIT: Итак, настоящая проблема заключалась в том, что я не ожидал, что вывод игровой площадки (включая println
) будет экранирован. Это, в сочетании с усталостью и другими глупостями, заставило меня поверить в существование проблемы, хотя ее не существовало.
Интересно, что не все, кажется, сбежало на детской площадке:
println("foo\nbar") // Outputs "foo\nbar", escaped
println("\\n") // Outputs "\n", unescaped
dict1.txt
в нужное место. Что находится в вашем файлеdict1.txt
и чем оно отличается от того, что вы видите в своей переменнойcontent
? - person Mike S   schedule 24.10.2014content
соответствует файлу. Я никогда не должен программировать уставшим. Что меня сбило с толку, так это сбежавший'\n'
, из-за которого содержимое выглядело как путь. - person alttag   schedule 24.10.2014println
!= вывод консолиprintln
. Дополнительная информация о консоли в этом вопросе. - person alttag   schedule 24.10.2014