NSBundle 的理解和 mainBundle 类方法详解,nsbundlemainbundle

NSBundle 的理解和 mainBundle 类方法详解,nsbundlemainbundle

常看到类似的

NSString *file = [[NSBundle mainBundle] pathForResource:name ofType:nil];
这样的代码,来产生 file 的完全路径。

那么它是什么东西呢:先看 NSBundle 类,直接继承NSObject类。

这个类的对象,代表了 app 中代码和资源的文件在文件系统里所在的位置,通俗的说,就是定位了程序使用的资源(代码,图形,音乐等数据)在文件系统里的位置,并可以动态的加载、or卸载掉可执行代码。

我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程序的main bundle,在 xcode 里,使用应用程序、框架、or 插件的时候,xcode 会生成对应的资源的目录包。

类方法:

mainBundle 方法详解

  • (NSBundle *)mainBundle
    返回一个 NSBundle类的对象,这个对象就是一个完全path,这个 path 保存的当前可执行的app路径,或者是 返回nil。app ,Build之后, 资源文件直接就复制到了根目录下,于是读取的方法,应该是这样:

NSString *earth = [[NSBundle mainBundle] pathForResource:@"Brad Cox" ofType:@"png"];
编译之后,mainBundle的资源都是放到RootFolder下,所以,可以直接访问,不要指定内部路径。通常来说,这个 mainbundle 就是 当前的可执行app 的在根目录下的绝对路径,

也就是:

finder根目录开始的路径+app 的name+.app 后缀。而资源就直接访问,都在 app 的包里。比如;

/Users/dashuai/Library/Application Support/iPhone Simulator/5.1/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2/tomcat.app/drink.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天就本周作业的读取txt文件查找了的一些方法,如下: //读取文本内容NSError *error;NSStri...
    霏誠拜咬o阅读 3,916评论 0 0
  • 原文地址:http://blog.csdn.net/shx_yi/article/details/8755415 ...
    默默_David阅读 14,695评论 2 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,280评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,287评论 19 139
  • 《银魂》里有一句台词说:“等你们长大成人了就会明白,人生还有眼泪也冲刷不干净的巨大悲伤,还有难忘的痛苦让你们即使想...
    残月梦否阅读 1,603评论 0 0

友情链接更多精彩内容