QQ网名大全

怎么读取bundle中的n文件层次ios

IOS复习NSBundle读取数据
NSBundle读取图片到视图上,读取plist文件,读取txt文件显示在lable上;

bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.
我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程序的main bundle
bundle中的有些资源可以本地化.例如,对于 foo.nib,我们可以有两个版本: 一个针对英语用户,一个针对法语用户. 在bundle中就会有两个子目录:English.lproj和French.lproj,我们把各自版本的 foo.nib文件放到其中. 当程序需要加载foo.nib文件时,bundle会自动根据所设置的语言来加载.
NSBundle束,是一种特定的文件类型,其中的内容遵循特定的结构。
NSBundle的一个主要作用是 获取Resources文件夹中的资源。
NSBundle 对象代表了文件系统中的一个位置,这个位置存放的是我们程序的代码和资源。NSBundel 对象同时本地化程序资源,动态加载和卸载可执行代码,及本地化支持。有三种束,分别是面向应用程的、面向框架的和面向插件的;
上面都是来自互联网,具体博客忘记了,太多了,下次把我学习的博客,书籍也总结出来

首先新建Single View Application项目,名称NSbundleStudy
然后拖拽一张图片到项目,我添加的是@@_@@2 _2.png
拖拽方法是按command+option+a快捷键

由于我没有重命名,有点麻烦。下面红框一定要勾选,那是复制文件到项目,如果不够选只不过是添加了一个引用,就好比copy和引用了指针的区别一样,

在chenViewController.m添加代码到- (void)viewDidLoad方法,如下
- (void)viewDidLoad
{
[superviewDidLoad];
//定义一个NSBundle对象获取得到应用程序的main bundle
NSBundle *mainBundle=[NSBundle mainBundle];
//用对象mainBundle获取图片路径
NSString *imagePath=[mainBundle pathForResource:@"@@_@@2_2" ofType:@"png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];
NSLog(@"imagepath:%@",imagePath);
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
CGRect frame = CGRectMake(10, 10, 300, 440);
imageView.frame=frame;
[self.view addSubview:imageView];
//这是mainBundle获取 imagepath的路径,控制台输出的
imagepath:/Users/chen/Library/Application Support/iPhone Simulator/6.1/Applications/47D65048-94EF-4889-B695-A94A145CCCA2/NSbundleStudy.app/@@_@@2_2.png
}
运行结果如下图

//注意我设置的frame坐标,并不是全屏显示;

顺便复习一下上次读取plist文件
// 获取plist文件路径
NSString *infoPlist = [[NSBundlemainBundle] pathForResource:@"testInfo"ofType:@"plist"];
// 将testInfo.plist文件内容读取到字典中
NSDictionary *dic = [[NSDictionaryalloc] initWithContentsOfFile:infoPlist];
// 打印dic中所有内容
NSLog(@"%@",dic);
// 打印键值为key4的值
NSLog(@"key4=%@",[dic objectForKey:@"key4"]);
补充下,key4是testInfo.plist文件中对应的一个键值

//接着学习mainBundle读取txt文件,然后把它显示在lable上,先添加一个有内容txt文件;读取txt文件和上面例子一样,再次想说一下如何显示在label上,如果txt中内容太多需要换行
command+n快捷键新建文件叫text.txt
在里面添加内容,随便添加
佚名
2024-05-29 19:54:49
最佳回答
类似问题(10)