IOS Bundle详细介绍及使用方法

什么是Bundle?

A bundle is a directory with a standardized hierarchical structure that holds executable code and the resources used by that code.

Bundle就是一个标准化分层化的路径,这个目录保存了可执行代码以及这些代码执行的时候需要的资源文件。

Bundle存储哪些文件?

文件 作用
Info.plist 一个iOS App运行所必需的文件,这个结构化的文件里存储着App运行需要的各种因素(例如:需要使用地理位置,支持的设备等等)
可执行文件 必需的文件,程序的入口点
资源文件 包括图片,图标,strings文件,nib文件,配置文件等。通常数据文件是可以本地化的,也就是对不同语言进行适配

一个简单的Bundle结构

其中

文件 作用
MyApp 应用的可执行文件,名字和应用的名字一致
MyAppIcon.png, MySearchIcon.png, MySettingsIcon.png 图标文件,由于图标要在不同的地方展示(主界面,搜索界面,setting界面等)所以,通常要提供不同尺寸的图标
Info.plist 必需的文件,上文有阐述
Default.png App开启的时候显示的图片
MainWindow.nib App开启的时候主界面的nib文件,这个我很少用,一般都是用storyboard来做了
Settings.bundle 在系统设置信息里的应用配置选项,用来保存那些很少需要改变的配置(这个国外的App用的较多,国内的app不怎么用)
可以本地化的资源文件 不可以本地化的文件保存在顶层目录,可以国际化的文件通常保存在响应的语言目录

Bundle中资源查找的顺序

  • 全局资源(非本地化的资源)
  • Region-specific 的资源(国家相关)(本地化)
  • 语言相关的资源(本地化)
  • 程序开发语言相关(一般就是英语)

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • IOS UI学习教程之区分NSBundle和NSURL(读取文件、写入文件)

    本文实例为大家区分NSBundle和NSURL,具体实现内容如下 在项目的工程中添加一个文件,本例程添加的是aa.txt,文件的内容为百度: www.baidu.com,现在要使用NSBundle和NSURL分别去获取内容,代码如下: // 读取文件内容 // 方法1:按照文件路径读取 NSString *pathBundle = [[NSBundle mainBundle]pathForResource:@"aa" ofType:@"txt"]; NSString

  • IOS获取当前版本号 Bundle ID等信息的方法详解

     IOS获取当前版本号 Bundle ID等信息的方法 1:获取bundle Id信息:[[NSBundle mainBundle]bundleIdentifier]: 2:获取版本号:[[[NSBundle mainBundle]infoDictionary] objectForKey:@"CFBundleShortVersionString"]; 3:获取build号:[[[NSBundle mainBundle]infoDictionary] objectForKey:@&quo

  • iOS 加载Bundle文件的实例代码

    废话不多说了,下面通过一段代码给大家介绍iOS 加载Bundle文件的方法,具体代码如下所示: - (NSString *)loadJsFile:(NSString *)fileName Type:(NSString *)type{ NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:type]; NSString *string1 = [NSString stringWithContentsOfFile

  • IOS Bundle详细介绍及使用方法

    什么是Bundle? A bundle is a directory with a standardized hierarchical structure that holds executable code and the resources used by that code. Bundle就是一个标准化分层化的路径,这个目录保存了可执行代码以及这些代码执行的时候需要的资源文件. Bundle存储哪些文件? 文件 作用 Info.plist 一个iOS App运行所必需的文件,这个结构化的文

  • Vuex详细介绍和使用方法

    目录 一.什么是Vuex 二.运行机制 三.创建项目 1.使用脚手架搭建Vue项目 2.安装Vuex 3.启动项目 4.配置使用Vuex 4.1.创建store文件夹 4.2.配置全局使用store对象 四.Vuex核心概念 1.state 2.mutations 3.Getter 3.1.通过属性进行访问 3.2.通过辅助函数进行访问 4.Action 4.1.通过dispatch触发 4.2.通过辅助函数触发 5.Module 五.总结 1.核心概念 2.底层原理 一.什么是Vuex 官网解

  • linux防墙iptables详细介绍、配置方法与案例

    1.1 iptables防火墙简介 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的安全自由的**基于包过滤的防火墙工具**,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制.特别是它可以在一台非常低的硬件配置下跑的非常好 Iptables是Linux2.4及2.6内核中集成的服务.其功能与安全性比其**ipfwadm,ipchains**强大的多,iptables主要工作在OSI七层的二.三.四层,

  • ISO7 二维码详细介绍及使用方法

    使用系统自带生成/扫描二维码 iOS7开始苹果集成了二维码的生成的扫描 ### 生成二维码的步骤 导入CoreImage框架 #import <CoreImage/CoreImage.h> 通过滤镜CIFilte生成二维码 ### 二维码的内容(传统的条形码只能放数字) 纯文本 名片 URL 生成二维码 // 1.创建过滤器 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; // 2.恢复默

  • C# 递归函数详细介绍及使用方法

    什么是递归函数/方法? 任何一个方法既可以调用其他方法也可以调用自己,而当这个方法调用自己时,我们就叫它递归函数或递归方法. 通常递归有两个特点: 1. 递归方法一直会调用自己直到某些条件被满足 2. 递归方法会有一些参数,而它会把一些新的参数值传递给自己. 那什么是递归函数?函数和方法没有本质区别,但函数仅在类的内部使用.以前C#中只有方法,从.NET 3.5开始才有了匿名函数. 所以,我们最好叫递归方法,而非递归函数,本文中将统一称之为递归. 在应用程序中为什么要使用递归?何时使用递归?如何

  • MariaDB中的thread pool详细介绍和使用方法

    Thread pool是什么 MySQL是每个连接上来都要创建一个线程来执行语句.这样每一个新的连接进来即会创建一个新的线程,这种动作对MySQL本身压力比较大.Threadpool是提供一种线程代理的模型执行每个连接的语句.而MySQL内部维护一个可能接受的线程总数,减少线程太多在CPU切换等方面的压力. 使用Threadpool的好处 1.使用线程代理的模型在连接数已知可控的情况下,提前创建好过线程并利用操作系统的threadpool技术维护,能减少很多开销. 2.尽可能的使用操作系统的线程

  • 有关phpmailer的详细介绍及使用方法

    第一,需要下载PHPMailer文件包phpmailer. http://phpmailer.sourceforge.net/第二,确认你的服务器系统已经支持socket ,通过phpinfo();查看是否支持sockets(socket 是属于PHP扩展部分),如果显现为"enabled",那就是支持了.第三,把文件解压到你的web服务器目录下,调用类就可以了.首先包含class.phpmailer.php,然后创建对象,设置参数,调用成员函数. 例1,做成函数方便调用 复制代码 代

  • asp.net Repeater控件的说明及详细介绍及使用方法

    Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局.当该页运行时,Repeater 控件依次通过数据源中的记录为每个记录呈现一个项. 他很简单,用起来也不够强大,但是应了那句老话,杀鸡焉用牛刀,不用牛刀那用什么呢?难道我们去把鸡咬死不成?而我们在日常应用中也常常面临这样的选择,假设我们显示教复杂的数据,可以用gridview,一般复杂的用DataList,那么简单的数据呈现呢?我们就用Repeater了,因为他简单,小巧,最主要是灵活. 我们

  • c++中的消息框messagebox()详细介绍及使用方法

    1.MessageBox("这是一个最简单的消息框!"); 2.MessageBox("这是一个有标题的消息框!","标题"); 3.MessageBox("这是一个确定 取消的消息框!","标题", MB_OKCANCEL ); 4.MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMATION ); 5.MessageBox(&

  • IOS App 无代码入侵的方法hook详细介绍

    iOS App 无代码入侵的方法hook 继续Objective-C runtime的研究 最近公司项目在做用户行为分析 于是App端在某些页面切换,交互操作的时候需要给统计系统发送一条消息 在几十个Controller 的项目里,一个一个地加代码那完全是不可能的,维护起来也是吃力 但这里需要处理的是 Controller, 可以有以下方式实现上述需求 1. 利用Objective-C 中的对象继承 继承 在面向对象开发中是非常常用的,像我们现在做的项目工程中都会有一个BaseViewContr

随机推荐