`
dcj3sjt126com
  • 浏览: 1870999 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iOS-生成Bundle包-引入bundle-使用bundle

    博客分类:
  • IOS
阅读更多
在我们使用第三方框架时,常常看到XXX.bundle的文件。
我们找到该文件,显示包内容,大致看到很多资源文件:图片、配置文本、XIB文件……
 
什么是Bundle文件?
简单理解,就是资源文件包。我们将许多图片、XIB、文本文件组织在一起,打包成一个Bundle文件。方便在其他项目中引用包内的资源。
 
Bundle文件的特点?
Bundle是静态的,也就是说,我们包含到包中的资源文件作为一个资源包是不参加项目编译的。也就意味着,bundle包中不能包含可执行的文件。它仅仅是作为资源,被解析成为特定的2进制数据。
 
制作Bundle
 
1.新建bundle项目
iOS-生成Bundle包-引入bundle-使用bundle

2.添加需要的图片
加入你需要编译在bundle中的资源文件。
当然,默认的配置也是可以的,如果你需要特定的优化或者特定的路径配置,你可以进行下面第3步的配置。
 
3.你可以对编译的bundle进行一些可选的设置(可选)
a.作为资源包,仅仅需要编译就好,无需安装相关的配置。
iOS-生成Bundle包-引入bundle-使用bundle
 
b.同样要删除安装路径。
iOS-生成Bundle包-引入bundle-使用bundle
 
c.该资源包的pch文件和strings文件是可以删除的。
iOS-生成Bundle包-引入bundle-使用bundle
 
4.最好状态下,要编译出适用与iPhone的bundle文件。
iOS-生成Bundle包-引入bundle-使用bundle
 
项目集成bundle
 
使用bundle就非常的easy了,将编译好的XXXX.bundle 文件直接加入到需要的项目中。省略了!
 
使用bundle中的资源
将要使用的bundle集成到项目中后,就可以使用了。需要注意的就是,bundle是静态的,不进行编译的资源文件。所以,要使用bundle中的资源,就需要找到相应的资源路径。
这里废话就不多说了,贴代码!
 
VC获得bundle中的资源

 

NSString * bundlePath = [[ NSBundle mainBundlepathForResource: @ "MyBundle"ofType :@ "bundle"];

NSBundle *resourceBundle = [NSBundle bundleWithPath:bundlePath];

UIViewController *vc = [[UIViewController allocinitWithNibName:@"vc_name"bundle:resourceBundle];

 
图片获得bundle中的资源
 

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

UIImage *image = [UIImage imageNamed:@"MyBundle.bundle/img_collect_success"];

[imgView setImage:image];

 
或者
 

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

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]

 
希望对你有所帮助!
转自:http://blog.sina.com.cn/s/blog_7b9d64af0101jmj2.html
分享到:
评论

相关推荐

    swift-ios-deploy从命令行安装和调试iPhone应用程序而不使用Xcode

    在macOS上,你可以使用Homebrew来安装`ios-deploy`。首先确保已经安装了Homebrew,然后在终端运行以下命令: ```bash brew install ios-deploy ``` 如果遇到权限问题,可能需要使用`sudo`: ```bash sudo brew ...

    ios-deploy

    接着,你可以通过npm(Node.js包管理器)来安装`ios-deploy`: ```bash npm install -g ios-deploy ``` ### 三、ios-deploy的使用 安装完成后,你可以使用以下命令将.ipa文件部署到iOS设备: ```bash ios-deploy...

    sqlite-netFx451-setup-bundle-x86-2013-1.0.105.2.exe

    "sqlite-netFx451-setup-bundle-x86-2013-1.0.105.2.exe" 是一个针对VS2013的SQLite安装包,适用于x86架构的Windows系统,版本号为1.0.105.2。 1. **SQLite 介绍**: - SQLite是一个自包含、无服务器、零配置、...

    sqlite-netFx40-setup-bundle-x86-2010-1.0.82.0

    "sqlite-netFx40-setup-bundle-x86-2010-1.0.82.0" 这个标题揭示了这个安装包是针对.NET Framework 4.0 平台,32位(x86)系统的SQLite 安装包,版本号为1.0.82.0。 这个安装包的主要功能包括: 1. **SQLite数据库...

    React Native打包IOS超详细步骤

    后面编译打包离线资源,也会生成bundle目录,提前建,是为了防止某些情况下报错。 2、进行编译,离线打包资源。命令如下: react-native bundle --entry-file index.js //entry-file,ios或者android入口的js名称,...

    react-native ios详细打包步骤及上传开发者中心.docx

    react-native bundle --entry-file ./index.js --bundle-output ./ios/bundle/index.ios.jsbundle --platform ios --assets-dest ./ios/bundle --dev false ``` 步骤 4:导入 JSBundle 文件 把生成的 JSBundle ...

    ios-iOS-本地应用分发.zip

    2. **配置描述文件(Provisioning Profile)**:这是iOS设备上运行应用所必需的,它包含了设备UDID、应用的Bundle ID以及用于签名的证书信息。开发者需要在Apple Developer Portal上创建并下载配置描述文件,然后在...

    coolnameismy#ios-tips#ios中bundle的使用1

    ios中bundle的使用将图片文件夹的后缀改名为:xxx.bundleVC获得bundle中的资源NSString * bundlePath = [[ NSB

    appium-ios-device-自动化-手机自动化-移动端IOS自动化-自动化测试-ios真机驱动

    自 Appium 1.15.0 版本起,引入了“appium-ios-device”作为连接真机设备的新方式。这一变化简化了设置过程,不再需要用户手动安装额外的依赖项,如 libimobiledevice、ideviceinstaller 和 udidetect 等,使得整体...

    IOS打包Bundle与加载Demo

    在iOS开发中,Bundle是应用程序资源的容器,它包含了图片、音频、本地化字符串、故事板等非代码文件。本文将深入探讨如何打包Bundle以及如何在应用中加载这些Bundle,同时也会涉及Bundle的安全性,尤其是加密策略。...

    可以查看iOS的bundle的工具

    本文将深入探讨如何使用名为"SimPholders2.app"的工具来查看iOS应用的bundle内容。 首先,我们需要理解什么是bundle。在iOS中,bundle是一个包含应用程序代码、资源文件和元数据的容器。每个iOS应用都有一个主...

    ios-PPAutoPackageScript.zip

    3. **生成IPA文件**:完成编译后,脚本会将.app文件封装成IPA格式,这是iOS设备上可安装的应用包。`xcodebuild`的`-exportOptionsPlist`参数可以用来定义导出选项,如是否包含Bitcode,分发方式等。 4. **清理旧...

    ios-使用NSFileManager管理文件系统.zip

    - Bundle Container目录包含应用程序包。 - Data Container目录包含app和用户的数据,可以进一步分为几个子目录,以便app对数据进行分类。 - 应用程序还可以在运行时请求访问如iCloud容器一类目录。 详细介绍:...

    cargo-bundle:将rust可执行文件包装在特定于OS的应用程序包中

    货物捆绑 将Rust可执行文件包装在特定于OS的应用程序捆绑包中关于cargo-bundle是一种工具,用于为使用cargo构建的GUI可执行文件生成安装程序或应用程序捆绑包。 它可以为Mac OS X和iOS创建.app捆绑包,为Linux创建....

    思科无线控制器WLC2504-IOS升级AIR-CT2500-AP_BUNDLE-K9-8-5-182-0.zip

    cisco wlc 2504补充包AIR-CT2500-AP_BUNDLE-K9-8-5-182-0 需要先升级基础包AIR-CT2500-K9-8-5-182-0 MD5 304e1e7e0ed953da1fe447f3ef897825 AIR-CT2500-AP_BUNDLE-K9-8-5-182-0.aes

    iOS-OC-widget使用小谈

    iOS的Widget是由Apple在iOS 8中引入的,它们属于Today扩展的一部分,允许开发者创建小型、轻量级的界面,显示在Today视图中。用户可以通过下拉通知中心来查看和交互。Widget的设计目标是提供快速的信息概览和简单的...

    calabash-ios-server:嵌入式HTTP服务器,用于执行查询和测试自动化

    要使用其他Xcode进行构建,请执行以下操作: $ DEVELOPER_DIR=/Xcode/10.1/Xcode-beta.app make 如果您有构建错误,请参见下面的xcpretty部分。 维护者必须安装葫芦/瓢签私人仓库。 详细信息如下。 非维护人员将...

    ios-中国大学名录.zip

    在实际使用这个压缩包时,首先需要将其解压,然后利用iOS或macOS的编程语言(如Objective-C或Swift)提供的API来读取并解析plist文件。例如,使用Swift,可以使用`PropertyListDecoder`类来完成这个任务: ```swift...

Global site tag (gtag.js) - Google Analytics