Я пытаюсь написать простую оболочку IO для Swift.
Чтобы проверить это, у меня есть файл с именем Test.txt в корне моего проекта.
Я добавил этот файл для создания фаз в составе Bundle Resources, как это было предложено всеми, у кого была эта проблема.
Я реализовал очень простой класс File с одной функцией чтения с намерением вывести содержимое файла.
class File2{
let resourceName: String
let type: String
let bundle = NSBundle.mainBundle()
init(resourceName: String, type: String = "txt"){
self.resourceName = resourceName
self.type = type
println(self.bundle)
}
func read(){
let path = self.bundle.pathForResource("Test.txt", ofType: "txt") //Hard coded these in just to make sure Strings contained no whitespace
println(path) //This returns nil...why?
var error:NSError?
//print(String(contentsOfFile:path!, encoding:NSUTF8StringEncoding, error: &error)!)
//return String(contentsOfFile:path!, encoding:NSUTF8StringEncoding, error: &error)!
}
}
Когда я печатаю содержимое пакета, я получаю URI в определенное место в своей файловой системе, которое, я полагаю, является виртуальным расположением приложения в симуляторе. Навигация к нему показывает, что он действительно содержит мой файл "Test.txt".
Теперь все, что я хочу сделать, это получить путь к этому файлу.
Я делаю это, вызывая: self.bundle.pathForResource("Test.txt", ofType: "txt")
Это возвращает "nil"
Почему?:)