iOS中bundle的使用

来源:互联网 发布:采购要会什么软件 编辑:程序博客网 时间:2024/05/16 11:34
一、概述
1.在我们使用第三方框架时,常常看到XXX.bundle的文件。我们找到该文件,显示包内容,大致看到很多资源文件:图片、配置文本、XIB文件……
2.什么是Bundle文件:简单理解,就是资源文件包。我们将许多图片、XIB、文本文件组织在一起,打包成一个Bundle文件。方便在其他项目中引用包内的资源。
3.Bundle文件的特点:Bundle是静态的,也就是说,我们包含到包中的资源文件作为一个资源包是不参加项目编译的。也就意味着,bundle包中不能包含可执行的文件。它仅仅是作为资源,被解析成为特定的2进制数据。
4.使用场景:
(1)项目为SDK性质的,除了可执行代码以外,还有另外一些资源文件,可以制作成Bundle的方式给第三方用。
(2)自己的单独的项目,为了让代码和资源架构更加清晰,可以将资源文件单独做一个Bundle类型的Target来管理。

二、制作Bundle

1.新建bundle项目

iOS中bundle的使用 - 米安格 - 米安格的博客
 
2.添加需要的图片
加入你需要编译在bundle中的资源文件。
当然,默认的配置也是可以的,如果你需要特定的优化或者特定的路径配置,你可以进行下面第3步的配置。

3.你可以对编译的bundle进行一些可选的设置(可选)
a.作为资源包,仅仅需要编译就好,无需安装相关的配置。
iOS中bundle的使用 - 米安格 - 米安格的博客
 
b.同样要删除安装路径。
iOS中bundle的使用 - 米安格 - 米安格的博客
 
c.编译出适用于iPhone的bundle文件。
iOS中bundle的使用 - 米安格 - 米安格的博客
 
三、项目集成bundle

使用bundle就非常的easy了,将编译好的XXXX.bundle 文件直接加入到需要的项目中。省略了!

四、使用bundle中的资源

1.开始:
将要使用的bundle集成到项目中后,就可以使用了。需要注意的就是,bundle是静态的,不进行编译的资源文件。所以,要使用bundle中的资源,就需要找到相应的资源路径。

2.获得bundle中的XIB

NSBundle *myBundle = [NSBundle bundleWithPath: [[[NSBundle mainBundle] resourcePath] 

stringByAppendingPathComponent: @"MyBundle.bundle"]];

UIViewController *vc = [[UIViewController alloc

initWithNibName:@"VC_Name" bundle:myBundle];


3.获得bundle中的图片

NSString *imgPath= [[myBundle resourcePath] 

                stringByAppendingPathComponent:@"img_collect_success.png"];

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 50,50)];

UIImage *image=[UIImage imageWithContentsOfFile:imgPath];

[imgView setImage: image];


4.当然,可以写成预编译语句:

#define MyBundleName @"MyBundle.bundle"

#define MyBundlePath [NSBundle bundleWithPath: [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:MyBundleName]]


转载自:http://blog.sina.com.cn/s/blog_7b9d64af0101jmj2.html

0 0
原创粉丝点击