NSBundle读取txt文件,图片,plist
关于bundle作用在网上参考了两个博客,介绍如下:
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 对象同时本地化程序资源,动态加载和卸载可执行代码,及本地化支持。有三种束,分别是面向应用程的、面向框架的和面向插件的;
- // 定义一个NSBundle对象获取得到应用程序的main bundle
- NSBundle *mainBundle = [NSBundle mainBundle];
- // 用对象mainBundle获取图片路径
- NSString *imagePath = [mainBundle pathForResource:@"test" ofType:@"png"];
- UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];
2..mainBundle读取txt文件,然后把它显示在lable上,当然在此之前需要添加一个有内容txt文件;读取txt文件和上两个例子一样,再次想说一下如何显示在label上,如果txt中内容太多需要换行的操作;
- // 获取txt文件路径
- NSString *txtPath = [mainBundle pathForResource:@"test" ofType:@"txt"];
- // 将txt到string对象中,编码类型为NSUTF8StringEncoding
- NSString *string = [[NSString alloc] initWithContentsOfFile:txtPath encoding:NSUTF8StringEncoding error:nil];
- NSLog(@"%@",string);
- CGRect labelframe = CGRectMake(10, 10, 300, 440);
- UILabel *label = [[UILabel alloc] initWithFrame:labelframe];
- // 将sring内容赋给lable的text属性
- label.text=string;
- label.textAlignment = UITextAlignmentLeft;
- // 自动换行设置
- label.lineBreakMode = UILineBreakModeCharacterWrap;
- //等于0表示可根据具实际情况自动变动
- label.numberOfLines = 0;
- [self.view addSubview:label];
- }
label.numberOfLines =0;可以自动适应显示,如果等于1显示一行,对于10显示10行