ios创建.bundle文件

Bundle文件可以理解为一个资源包,用于存储图片、音频、文本、nib文件等,方便在其他项目中引用包内的资源。bundle包是静态的,不参与编译,也就意味着,bundle 包中不能包含可执行的文件。它仅仅是作为资源,被解析成为特定的 2 进制数据。

一、创建方式

1、简单创建:创建一个文件, 将该文件重命名成后缀为.bundle的文件

2、通过X-Code创建

新建一个工程:


ios创建.bundle文件_第1张图片
屏幕快照 2018-06-06 下午6.26.44.png

ios创建.bundle文件_第2张图片
屏幕快照 2018-06-06 下午6.28.35.png

ios创建.bundle文件_第3张图片
屏幕快照 2018-06-06 下午6.33.30.png

ios创建.bundle文件_第4张图片
屏幕快照 2018-06-06 下午6.35.39.png

添加资源到工程:


ios创建.bundle文件_第5张图片
屏幕快照 2018-06-07 上午9.36.34.png

此时可以看到.bundle文件是红色的,接下来分别选一个模拟器和Generic iOS Device编译一下,分别代表真机和模拟器


ios创建.bundle文件_第6张图片
屏幕快照 2018-06-07 上午9.38.55.png

运行过后.bundle文件变成了黑色,选中该文件show in Finder
ios创建.bundle文件_第7张图片
屏幕快照 2018-06-07 上午9.42.32.png

里面有相对应的真机和模拟器的生成的.bundle文件


ios创建.bundle文件_第8张图片
屏幕快照 2018-06-07 上午9.43.06.png

Bundle文件的使用:
直接在这个工程中,创建一个App项目。然后把这个Bundle资源包添加(直接拖也OK)进去调用即可


ios创建.bundle文件_第9张图片
屏幕快照 2018-06-07 上午10.57.30.png

ios创建.bundle文件_第10张图片
屏幕快照 2018-06-07 上午11.01.17.png

ios创建.bundle文件_第11张图片
屏幕快照 2018-06-07 上午11.03.09.png

//如果不像上面这样,直接新建一个工程将bundle包直接拖到新工程中使用也是OK的

具体访问文件方法:(以图片为例)

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
    //获取bundle路径的两种方式
    NSString *path = [[NSBundle mainBundle] pathForResource:@"MyDemo" ofType:@"bundle"];
//    NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MyDemo"];
    NSBundle *bundle = [NSBundle bundleWithPath:path];
    //获取image的两种方式
    imageView.image = [UIImage imageNamed:@"emojy" inBundle:bundle compatibleWithTraitCollection:nil];
//    imageView.image = [UIImage imageNamed:@"MyDemo.bundle/emojy"];
    [self.view addSubview:imageView];

如果有nib文件:

NSString *path = [[NSBundle mainBundle] pathForResource:@"MyDemo" ofType:@"bundle"];
    //    NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MyDemo"];
    NSBundle *bundle = [NSBundle bundleWithPath:path];
    UINib *nib = [UINib nibWithNibName:NSStringFromClass([@"YourClassName" class]) bundle:bundle];

你可能感兴趣的:(ios创建.bundle文件)