ios创建.bundle文件

作者: Moker_C | 来源:发表于2018-06-06 18:39 被阅读2次

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

一、创建方式

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

2、通过X-Code创建

新建一个工程:


屏幕快照 2018-06-06 下午6.26.44.png
屏幕快照 2018-06-06 下午6.28.35.png
屏幕快照 2018-06-06 下午6.33.30.png
屏幕快照 2018-06-06 下午6.35.39.png

添加资源到工程:


屏幕快照 2018-06-07 上午9.36.34.png

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


屏幕快照 2018-06-07 上午9.38.55.png
运行过后.bundle文件变成了黑色,选中该文件show in Finder
屏幕快照 2018-06-07 上午9.42.32.png

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


屏幕快照 2018-06-07 上午9.43.06.png

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


屏幕快照 2018-06-07 上午10.57.30.png
屏幕快照 2018-06-07 上午11.01.17.png
屏幕快照 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文件

    本文链接:https://www.haomeiwen.com/subject/opkisftx.html