NSBundle 是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应NSBundle,cocoa提供了类NSBundle. 我们的程序是一个NSBundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程序的main bundle .
NSBundle束,是一种特定的文件类型,其中的内容遵循特定的结构。
NSBundle的一个主要作用是 获取Resources文件夹中的资源。
NSBundle 对象代表了文件系统中的一个位置,这个位置存放的是我们程序的代码和资源。NSBundel 对象同时本地化程序资源,动态加载和卸载可执行代码,及本地化支持。有三种束,分别是面向应用程的、面向框架的和面向插件的;
NSBundle *mainBundle = [NSBundle mainBundle];
/**用对象mainBundle获取图片路径*/
NSString *imagePath = [mainBundle pathForResource:@"图片名" ofType:@"jpg"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
CGRect frame = CGRectMake(10, 150, 300, 440);
imageView.frame=frame;
imageView.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:imageView];
/**plist文件 plist文件的子内容的名称要和图片本身的名字是一样的*/
NSArray *imgArr = [NSArray arrayWithContentsOfFile:[mainBundle pathForResource:@"test.plist" ofType:nil]];
NSLog(@"imagepath:%@ 数据数组:%@",imagePath,imgArr);
/**两张图片都可以加载出来*/
UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(10, 600, 150, 40)];
[self.view addSubview:img];
[img setImage:[UIImage imageNamed:imgArr[0]]];
UIImageView *img2 = [[UIImageView alloc]initWithFrame:CGRectMake(160, 600, 150, 40)];
[self.view addSubview:img2];
[img2 setImage:[UIImage imageNamed:imgArr[1]]];