我曾经使用以下代码从我的应用程序包中读取文本文件。但是,无论我的应用程序无法再找到它们。我100%确定我的所有文件都在Assets.xcassets中,我可以看到它们,编辑它们,将它们从一个目录转换到另一个目录。但是我的应用程序不想阅读它们,请告诉我我错过了什么!!
这是我正在使用的程序......
func readBundle(file:String) -> String
{
var res: String = ""
if let path = NSBundle.mainBundle().pathForResource(file, ofType: "txt")
{
let fm = NSFileManager()
let exists = fm.fileExistsAtPath(path)
if(exists)
{
let c = fm.contentsAtPath(path)
res = NSString(data: c!, encoding: NSUTF8StringEncoding) as! String
}
}
return res
}
我正在使用它:
let res = readBundle("test")
print(res)
答案 0 :(得分:3)
在另一个选项中,然后'XCAssets'您可以创建一个单独的文件夹/资源组而不是项目结构中的图像,检查它们是否存在于项目主体的构建阶段部分的Copy Bundle Resource
中目标
如果您添加这样的资源,您当前的代码应该可以正常工作
func readBundle(file:String) -> String
{
var res: String = ""
if let path = NSBundle.mainBundle().pathForResource(file, ofType: "txt")
{
//you should be able to get the path
//other code as you has written in the question
}
return res
}
答案 1 :(得分:2)
在XCAssets中存储非图像文件时,应使用NSDataAsset来处理其内容
https://developer.apple.com/library/ios/documentation/UIKit/Reference/NSDataAsset_Class/
func readBundle(file:String) -> String
{
var res = ""
if let asset = NSDataAsset(name: file) ,
string = String(data:asset.data, encoding: NSUTF8StringEncoding){
res = string
}
return res
}