关于plist文件和NSBundle之间关系的一点心得

    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]]];

你可能感兴趣的:(ios,plist,nsbundle,资源调用)