尽量不要笑或哭 - 我只是在20年后重新开始编码......
我花了4个多小时查看引用并尝试使用代码片段来获取Bundle.main.path来打开我的文本文件所以我可以读取我的应用程序的数据(我的下一步是适当地解析它).
if let filepath = Bundle.main.path(forResource: "newTest", ofType: "txt") { do { let contents = try String(contentsOfFile: filepath) print(contents) } catch { print("Contents could not be loaded.") } } else { print("newTest.txt not found.") }
结果是:"找不到newTest.txt." 无论我如何尝试将文件拖放到项目中,在Xcode中创建文件或使用文件 - >添加文件到...菜单项.
问题是该文件没有处理您的应用包.要解决这个问题:
单击您的项目
单击您的目标
选择Build Phases
展开Copy Bundle Resources
点击"+"并选择您的文件.
仔细检查Options
在add files
添加文件时菜单.Add to targets
必须勾选目标以将其添加到捆绑包中:
如果您实际上在另一个包中(例如测试),请使用:
guard let fileURL = Bundle(for: type(of: self)).url(forResource: fileName withExtension:"txt") else { fatalError("File not found") }
单击导航面板上的文件,然后打开右侧面板/属性检查器.
确保添加到目标成员身份
Swift 3.0
let fileNmae = "demo" let path = Bundle.main.path(forResource: fileNmae, ofType: "txt") do { let content = try String(contentsOfFile:path!, encoding: String.Encoding.utf8) print(content) } catch { print("nil") }
SWift 2.0
do{ if let path = NSBundle.mainBundle().pathForResource("YOURTXTFILENAME", ofType: "txt"){ let data = try String(contentsOfFile:path, encoding: NSUTF8StringEncoding) let myStrings = data.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet()) print(myStrings) } } catch let err as NSError { //do sth with Error print(err) }
输出:
Hello Hems Good Morning I m here for you dude. Happy Coding.