创建文件包

在iOS开发中为了方便管理资源文件,可以使用bundle的方式来进行管理,我们可以将不同模块用到的资源文件放到不同的包中。目前iOS中只允许使用bundle管理资源文件和国际化信息,不支持代码的打包。

 

按照下面的步骤创建一个文件包:

1、在磁盘中创建一个根文件夹,这也就是最终的文件包,例如,我们把这个文件夹命名为Resources。

2、在Resources文件夹下创建3个命名为pictures、videos和audios的子文件夹。

3、在上面提到的3个子文件夹内分别放入相应的资源,例如在pictures文件夹中放入一张或者多张图片,在videos文件夹中放入一个或者多个视频文件,在audios文件夹中放入一个或者多个音频文件等。

4、完成以上步骤之后,将Resources文件夹重新命名为Resources.bundle,一旦给文件命名时加上这个扩展名,OS X会要求你确认并弹出一个如图所示的对话框,点击添加以便在文件夹中能够增加.bundle扩展名。


 

文件包是一个以.bundle为扩展名的文件包,和普通文件夹相比,它有2个主要特点:

1、 Cocoa Touch提供了一个界面,通过这个界面你可以进入相应的文件包简单获取里面的已有资源。

2、如果在Xcode左侧导航窗口增加一个文件包,任何文件增加或者移出文件包,将分别立即出现或者消失在Xcode导航窗口。相反,如果你在Xcode导航中增加了一个文件夹,然后再去删除磁盘中这个文件夹中的文件,在没有Xcode的帮助下,这个文件将会变成红色并且不能立即删除。文件包非常有用,特别是你想在文件夹中通过Finder而非Xcode手动增加文件。

 

每个iOS应用至少有一个文件包,叫做主文件包。主文件包包含你的应用软件中的二进制代码和其他在应用软件中使用的资源,例如影像、声音、HTML文件和其他相关文件。换言之,主文件包包含了你提交给App Store或者发布到自己组织内部的最终二进制文件中的资源,这些资源可以用NSBundle类的mainBundle类的方法动态加载。

 

以下代码用来获取Pics包中名为bg-img的png图片:

 

NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"Pics" ofType:@"bundle"]];
NSString *path = [bundle pathForResource:@"bg-img" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:path];

 

更详细的信息请参考:Bundle Programming Guide

猜你喜欢

转载自eric-gao.iteye.com/blog/1770324