我正在尝试为Swift编写一个简单的IO包装器。
为了测试它,我在项目根目录中有一个名为“Test.txt”的文件。
我已将此文件添加到构建阶段中的Build 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)!
}
}
当我打印bundle的内容时,我得到了一个指向我的文件系统上特定位置的URI,我认为这是模拟器中应用程序的虚拟位置。转到该位置后,发现它确实包含我的“Test.txt”文件。
现在我想要做的就是获取该文件的路径。
我通过调用以下代码来实现:self.bundle.pathForResource("Test.txt", ofType: "txt")
这将返回“nil”
为什么? :)