iphone -- NSBundle

转载 2013年12月02日 17:52:19

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


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

 

NSBundle的对象可以获取应用程序安装目录的附件。附件包括了当前应用程序下所有的文件(图片、属性列表等)。


获取XML文件:

NSString *filePath = [[NSBundle mainBundle] pathForResouse:@"re" ofType:@"xml"];
NSData *data = [[NSData alloc] initWithContentsOfFile:filePath];

获取属性列表:

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ViewControllers" ofType:@"plist"]];

通过使用下面的方法得到程序的main bundle:

NSBundle *myBundle = [NSBundle mainBundle];

一般我们通过上面这种方法来得到bundle.如果你需要其他目录的资源,可以指定路径来取得bundle

NSBundle *goodBundle;
goodBundle = [NSBundle bundleWithPath:@"~/.myApp/Good.bundle"];

//一旦我们有了NSBundle 对象,那么就可以访问其中的资源了
// Extension is optional
NSString *path = [goodBundle pathForImageResource:@"Mom"];
NSImage *momPhoto = [[NSImage alloc] initWithContentsOfFile:path];

//bundle中可以包含一个库. 如果我们从库得到一个class, bundle会连接库,并查找该类:
Class newClass = [goodBundle classNamed:@"Rover"];
id newInstance = [[newClass alloc] init];

//如果不知到class名,也可以通过查找主要类来取得
Class aClass = [goodBundle principalClass];
id anInstance = [[aClass alloc] init];

Lazy loading NSBundle MobileCoreServices.framework, Loaded MobileCoreServices.framework, System gr

Lazy loading NSBundle MobileCoreServices.framework, Loaded MobileCoreServices.framework, Syste...
  • qq_31448571
  • qq_31448571
  • 2017年11月14日 18:42
  • 1778

ld: warning: MobileCoreServices.framework/MobileCoreServices, missing required architecture i386 in

错误信息: ld: warning: in /Users/koupoo/koupoo/BoardEditor/MobileCoreServices.framework/MobileCoreSer...
  • Koupoo
  • Koupoo
  • 2011年08月09日 17:06
  • 1584

处理AFNetworking的SystemConfiguration与MobileCoreServices告警

在使用AFNetworking框架时会看到有如下告警: #warning SystemConfiguration framework not found in project, or not i...
  • happyrabbit456
  • happyrabbit456
  • 2013年09月21日 17:10
  • 1668

MobileCoreServices--LSApplicationWorkspace.h

@interface LSApplicationWorkspace : NSObject { } + (id)defaultWorkspace; - (id)URLOverrideForURL:(...
  • AddyChen
  • AddyChen
  • 2014年09月26日 17:43
  • 11545

iOS框架介绍(五)---Core Services 层

Core Services 层 Core Services层为所有的应用程序提供基础系统服务。可能应用程序并不直接使用这些服务,但它们是系统很多部分赖以建构的基础。 高阶特性 下面的...
  • iukey
  • iukey
  • 2012年06月15日 20:45
  • 13683

EF学习和使用(五)Lazy Loading and Eager Loading

想熟练正确的使用EF框架,那么就必须要了解EF加载数据的方式。EF加载数据的方式,小编了解的有预加载、延迟加载、显式加载、按需加载。不同的加载方式都有不同的适用情况,我们不能在这里笼统地下决定说哪种方...
  • u010028869
  • u010028869
  • 2015年09月17日 22:51
  • 4265

沙盒机制、NSBundle、简单对象写入文件

1、沙盒机制:沙盒的本质就是一个文件夹,名字是随机的。 2.沙盒的构成 Document:通常用来存放应用程序需要持久化使用的关键数据,比如:本地数据库等、iTunes在备份的时候会自动备份此文件...
  • zhongqing_fzq
  • zhongqing_fzq
  • 2015年09月24日 19:40
  • 222

iPhone NSBundle 用法

bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBu...
  • gf771115
  • gf771115
  • 2012年06月04日 15:53
  • 790

ios框架总结

Cocoa Touch 层 地址本框架 AddressBookUI.framework 是一套 Objective-C 的编程接口,可以显示创建或者编辑联系人的标准系统界面。该框架简化了应用程...
  • Christ_Beings
  • Christ_Beings
  • 2014年03月27日 15:08
  • 429

iOS/------报错问题/-------崩溃bug原因详解集合(一)-------------------------------------

1.原因:应用程序试图在LoginViewController上模态出一个空的视图控制器。 Terminating app due to uncaught exception 'NSInvali...
  • u011146511
  • u011146511
  • 2016年04月27日 12:13
  • 10265
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iphone -- NSBundle
举报原因:
原因补充:

(最多只允许输入30个字)