Bundle文件的创建和使用(一)
经常会出现某个需求:将自己的模块或者开放类,封装成静态库给其他人提供方便的调用。
但是当你的模块中需要大量使用xib,图片,音频或者其他资源文件时,无法添加至静态库。这个时候就需要将一些资源文件封装至.Bundle文件中。那么封装好的东西应该含有三类文件:
1:开放的头文件(包含完整的调用注释)
2:静态库文件 后缀名为.a
3:Bundle文件,用于存放各种资源文件。
那么其他的都很简单:这里具体说说bundle文件的封装(其实也很简单)
第一步:创建Bundle项目
选择Bundle文件类型后并创建项目。
第二步:修改BuildSetting相关设置
1:Base SDK 修改为 iOS6 或者其他存在的iOS SDK版本
2:Architectures 修改为 armv7 armv7s
第三步:添加需要添加的资源文件
第四步:Build (这里不需要使用证书也可以编译成功)
这样就生成了自己的Bundle
调用的时候助需要引用至项目中就行,如下:
程序中引入方式:
获得bundle中的资源 NSString * bundlePath = [[ NSBundle mainBundle] pathForResource: @ "MyBundle" ofType :@ "bundle"];
NSBundle *resourceBundle = [NSBundle bundleWithPath:bundlePath];
UIViewController *vc = [[UIViewController alloc] initWithNibName:@"vc_name" bundle:resourceBundle]; 图片获得bundle中的资源 UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
UIImage *image = [UIImage imageNamed:@"MyBundle.bundle/img_collect_success"];
[imgView setImage:image]; 或者 UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
NSString *imgPath= [bundlePath stringByAppendingPathComponent :@"img_collect_success.png"];
UIImage *image_1=[UIImage imageWithContentsOfFile:imgPath];
[imgView setImage:image_1]; 当然,可以写成预编译语句:
#define MYBUNDLE_NAME @ "MyBundle.bundle"
#define MYBUNDLE_PATH [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: MYBUNDLE_NAME]
#define MYBUNDLE [NSBundle bundleWithPath: MYBUNDLE_PATH]
如果想要将在某个非mainBundle的地方调用。那么需要额外加载此Bundle
Bundle文件的创建和使用(一)的更多相关文章
- Bundle文件的创建和使用(二)
1.概念: An NSBundle object represents a location in the file system that groups code and resources tha ...
- iOS 封装SDK以及封装时bundle文件的处理
这篇教程的主要目的是解释怎么样在你的iOS工程中创建并使用一个SDK,俗称.a文件. 环境:xcode 9.0 创建一个静态库工程 打开Xcode,点击File\New\Project, 选择iOS\ ...
- 自定义 bundle 包的创建
在我们使用第三方框架时,常常看到XXX.bundle的文件. 我们找到该文件,显示包内容,大致看到很多资源文件:图片.配置文本.XIB文件…… 什么是Bundle文件? 简单理解,就是资源文件包. ...
- ReactNative生成android平台的bundle文件命令
ReactNative生成android平台的bundle文件命令 2016年11月03日 23:23:28 阅读数:4869 注:如果assets文件没有正确生成,需要手机创建或授权 网上的其它的很 ...
- CentOS7.5 上使用 bundle 文件安装 MySQL8.0 MySQL5.0
CentOS7.5 上使用 bundle 文件安装 MySQL8.0 MySQL5.0 CentOS7.5 环境 [root@instance-fjii60o3 ~]# rpm -qi centos- ...
- 🙈 如何隐藏你的热更新 bundle 文件?
如果你喜欢我写的文章,可以把我的公众号设为星标 ,这样每次有更新就可以及时推送给你啦. 前段时间我们公司的一个大佬从一些渠道得知了一些小道消息,某国民级 APP 因为 Apple App Store ...
- Azure ARM (13) 从现有VHD文件,创建新的ARM VM
<Windows Azure Platform 系列文章目录> 本文参考了Git Hub的ARM Template: https://github.com/Azure/azure-quic ...
- Java 基础【13】 文件(文件夹) 创建和删除
使用 java.io.file 创建文件(文件夹),算是 java 最基础的知识,但实战项目中还是需要知晓细节. 比如 File 类中的 mkdir() 和 mkdirs() 的区别. JDK API ...
- 用 C# 轻松读取、改变文件的创建、修改、访问时间
创建时间是文件存入到电脑中的时间,而修改时间则是改变起内容的最后时间 // 读取文件的创建.修改.访问时间FileInfo fi = new FileInfo("C://test.txt&q ...
随机推荐
- Regionals 2012 :: Asia - Dhaka
水 B Wedding of Sultan 题意:求每个点的度数 分析:可以在,每个字母的的两个端点里求出的的出度,那么除了起点外其他点还有一个入度,再+1 /******************** ...
- HDU3138 Coconuts(最小割)
题目大概说有n个人每个人各有一个信仰0或1,他们中有m对朋友关系,现在要对一件事投票,可以为了和信仰不同的朋友一样而违背自己的信仰和朋友投一样的票,问违背信仰的人数加上和朋友投票结果不同的人数总和的最 ...
- Time.deltaTime 增量时间
static var deltaTime : float Description描述 The time in seconds it took to complete the last frame (R ...
- IOS 项目 小说 1
架构: logo: logo标识(在image文件夹中修改某图片名称为icon) default: 默认页面的启动效果(在image文件夹中修改某图片名称为Default) image:存放图片(根目 ...
- 【COGS】714. USACO 1.3.2混合牛奶(贪心+水题)
http://cojs.tk/cogs/problem/problem.php?pid=714 在hzwer的刷题记录上,默默地先跳过2题T_T...求凸包和期望的..T_T那是个啥..得好好学习 看 ...
- CentOS 下安装python 之MySQLdb
yum -y install mysql-devwget http://downloads.sourceforge.net/project/mysql-python/mysql-python-test ...
- LeetCode-Sudoku Solver (递归解法)
题目地址: https://leetcode.com/problems/sudoku-solver/ // 将字符串的数独题转换成 int[9][9] ][], char ** b, int boar ...
- 【C语言】12-指向一维数组元素的指针
一.用指针指向一维数组的元素 1 // 定义一个int类型的数组 2 int a[2]; 3 4 // 定义一个int类型的指针 5 int *p; 6 7 // 让指针指向数组的第0个元素 8 p ...
- python深浅拷贝
赋值引用,多变量使用同内存.对于可变数据对象,修改其中一个,影响其他.浅拷贝,只拷贝数据父对象,不拷贝其中子对象.深拷贝,拷贝对象及其子对象. 赋值引用:(修改,所有多影响) list1=[1,2,3 ...
- VS - 实用技巧
将Javascript 左边花括号置于新行 工具-选项-文本编辑器-格式设置-新行-全勾 开启调试自动窗口 || 监视变量 VS2012以下版本 CTRL + D + Q 其他版本 调试-窗口-自动窗 ...