一、NSBundle

NSBundle是cocoa为bundle提供的一个类,bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像、声音、编译好的代码、nib文件。(用户也会把bundle称为plug-in)

  bundle中的有些资源可以本地化。例如:对于zw.nib,我们可以有两个版本:一个针对英语用户,一个针对汉语用户。在bundle中就会有两个子目录:English.lproj和Chinese.lproj,我们把各自版本的zw.nib文件放到其中。当程序需要加载zw.nib文件时,bundle会自动根据所设置的语言来加载.(在小码哥最新的MJRefresh中就用到此方法,可以修改刷新时候的提示语言)

  获取bundle的方法,以及简单应用:

 1 - (void)viewDidLoad {
2 [super viewDidLoad];
3 //获得bundle
4 NSBundle *bundle = [NSBundle bundleWithPath:@"/Users/ZW/Desktop/abckd"];
5 //获取bundle文件中的图片的路径
6 NSString *path = [bundle pathForResource:@"00" ofType:@"png"];
7 //获取图片对象
8 UIImage *image = [[UIImage alloc] initWithContentsOfFile:path];
9 UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
10 [self.view addSubview:imageView];
11 }

  bundle还有其它用法:bundle中可以包含一个库. 如果我们从库得到一个class, bundle会连接库,并查找该类,等等,以后慢慢研究

二、mainBundle

  我们的程序是一个bundle。 在Finder中,一个应用程序看上去和其他文件没有什么区别。但是实际上它是一个包含了nib文件、编译代码以及其它资源的目录. 我们把这个目录叫做程序的main bundle,获取方式如下

  NSBundle *mainBundle = [NSBundle mainBundle]; 

  应用如下:

 
1 - (void)viewDidLoad {
2 [super viewDidLoad];
3 NSBundle *mainBundle = [NSBundle mainBundle];
4 NSLog(@"%@",mainBundle);
5 NSString *imagePath = [mainBundle pathForResource:@"abc" ofType:@"png"];
6 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imagePath]];
7 [self.view addSubview:imageView];
8 }
 

还有其它一些用法,比如加载工具条UIToolbar *toolbar = [[[NSBundle mainBundle] loadNibNamed:@"ZWKeyboardTool" owner:self options:nil] firstObject];等等,后续还有很多实际应用

其它的一些关于NSBundle更详细介绍可以看下博文:http://blog.sina.com.cn/s/blog_8c87ba3b0100t89v.html

NSBundle的理解和mainBundle的基本介绍的更多相关文章

  1. IOS NSBundle 的理解和 mainBundle 类方法详解

    常看到类似的 NSString *file = [[NSBundle mainBundle] pathForResource:name ofType:nil]; 这样的代码,用来获取 file 的完全 ...

  2. NSBundle 的理解和 mainBundle

    http://www.360doc.com/content/15/0629/10/20918780_481405304.shtml

  3. 对HTML的理解及常用标签使用介绍--来自我的百度前端技术学院的笔记

    HTML是什么,HTML5是什么? ——HTML:超文本标记语言,一种用于创建网页的标准标记语言: ——HTML5:目前最新的HTML标准,包含新的元素.属性.行为,基于它们的功能特征将他们分成不同的 ...

  4. Auto Layout深入理解,及masonry简单介绍

    本篇博客是本人在学习自己主动布局过程中对自己主动布局的理解和整理,分三部分介绍,内容可能会有所反复.见谅. 一.autosizing与Auto Layout对照,及Auto Layout简单介绍 1. ...

  5. ios - 沙盒和NSBundle

    沙盒 1.沙盒机制介绍 iOS中的沙盒机制是一种安全体系.每个iOS程序都有一个独立的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒.应用必须待在自己的沙盒里,其他应用不能 ...

  6. Android线程管理之ThreadLocal理解及应用场景

    前言: 最近在学习总结Android的动画效果,当学到Android属性动画的时候大致看了下源代码,里面的AnimationHandler存取使用了ThreadLocal,激起了我很大的好奇心以及兴趣 ...

  7. SQL连接操作符介绍(循环嵌套, 哈希匹配和合并连接)

    今天我将介绍在SQLServer 中的三种连接操作符类型,分别是:循环嵌套.哈希匹配和合并连接.主要对这三种连接的不同.复杂度用范例的形式一一介绍. 本文中使用了示例数据库AdventureWorks ...

  8. u3d avatar部件的理解

    u3d中带动画的fbx文件导入的时候,就会显示一个avatar组件,这个到底干嘛的一直没能很好的理解,翻看网上的介绍,基本都是告诉你,设置humanoid类型动画时,拖拉过去之类,但是这玩意到底存储了 ...

  9. 从C#到Objective-C,循序渐进学习苹果开发(4)--代码块(block)和错误异常处理的理解

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本文继续上一篇随笔<从 ...

随机推荐

  1. discuz X3 门户定制

    为了实现门户的定制,在本机全新的安装了discuzX3,现在只想使用其门户功能(即文章CMS管理).但是论坛功能是不能关闭的可能论坛是discuz的核心功能吧. 全新安装的discuzx3,主导航上只 ...

  2. nosql_action

    ps -aux  查当前端口占用 connecting to: test > show dbs local .078125GB testphp .203125GB > use testph ...

  3. 解决windows server 2003不识别移动硬盘

    解决windows server2003不显示移动硬盘的问题: 1.进入命令提示符环境(也就是DOS) 2.进入DISKPART程序 3.输入AUTOMOUNT ENABLE指令 4.输入OK 下次U ...

  4. 0x02 MySQL SQL基本语句

    有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的 ...

  5. 使用Kotlin开发Android应用 - 环境搭建 (1)

    一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...

  6. SpringBoot注解大全*(转发:http://www.cnblogs.com/ldy-blogs/p/8550406.html)

    一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration ...

  7. 鸟哥的Linux私房菜-第一部分-第3章主机规划与磁盘分区

    1. 选择一个与你的Linux搭配的主机配置 NAT服务器:小型企业或者学校都基本是只有一条对外的线路,网卡 SAMBA服务器:完成Windows网上邻居的功能,网卡和硬盘要求高 Mail服务器:如果 ...

  8. ASP.NET,什么是MVC,MVC的简单介绍

    什么是MVC模式 MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式.它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Co ...

  9. 查看连接MYSQL数据库的IP信息

    要统计数据库的连接数,我们通常情况下是统计总数,细分到每个ip地址: 方法一: ) as ip , count(*) from information_schema.processlist group ...

  10. css position absolute 浮动特性

    absolute的元素不会占据未浮动的元素的空间<html> <head> <style type="text/css"> .flipbox{ ...