我已经将一堆文件添加到我的swift项目文件夹中,如下所示:
我需要在项目的某个点访问这些文件,有两个目的:
我已在我班级的viewDidLoad
中实施此代码,以访问和遍历文件
//get categories
let fileManager = NSFileManager.defaultManager()
let directoryPath = NSHomeDirectory() + "/Categories"
let enumerator:NSDirectoryEnumerator = fileManager.enumeratorAtPath(directoryPath)!
while let element = enumerator.nextObject() as? String {
println(String(element))
}
这不起作用,并在fatal error: unexpectedly found nil while unwrapping an Optional value
行上产生错误let enumerator:NSDirectoryEnumerator = fileManager.enumeratorAtPath(directoryPath)!
。我怀疑(并纠正我,如果我错了),它正在访问应用程序内部文件结构,因此无法找到指定的文件。由于我是IOS开发的新手,我对其工作原理的一般理解充其量只是模糊不清。
所以我是如何访问文件的?我已经按照我在图片中显示的方式添加了项目,以便迭代并获取我正在寻找的数据
修改
所以我改变了结构,使Categories
文件夹成为一个实际的文件夹,如下所示:
我目前正在尝试使用NSBundle
来访问应用程序路由,但我不知道该怎么做。任何指导都将不胜感激。
答案 0 :(得分:1)
问题是xcode的项目导航器文件夹不是磁盘中的实际文件夹。所以这个:
let directoryPath = NSHomeDirectory() + "/Categories"
您的硬盘中不存在。如果你想要这个文件夹,你必须导航到你的硬盘上的项目文件夹,手动创建它并在其中添加你想要的文件。
您可以参考文件并按以下方式阅读:
let htmFile = NSBundle.mainBundle().pathForResource("aboutText", ofType: "html")
let htmlString = NSString(contentsOfFile: htmFile!, encoding: NSUTF8StringEncoding, error: nil)
对于json,您可以使用
获取字典let jsonFile = NSBundle.mainBundle().pathForResource("aboutText", ofType: "json")
let dict = NSDictionary(contentsOfFile: jsonFile)