博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSBundle的使用,注意mainBundle和Custom Bundle的区别
阅读量:6215 次
发布时间:2019-06-21

本文共 1252 字,大约阅读时间需要 4 分钟。

1、[NSBundle mainBundle],文件夹其实是Group,如左侧的树形文件管理器

Build之后,文件直接就复制到了根目录下,于是读取的方法,应该是这样:

NSString 
*earth = [[
NSBundle 
mainBundle] pathForResource:@
"Brad Cox" 
ofType:@
"png"
];

2、使用文件夹的时候,Build结果

依然使用同样的方法,不需要制定文件夹路径

//inDirectory参数可有可无
NSString *earth = [[NSBundle mainBundle] pathForResource:@"Matthijs" ofType:@"png" inDirectory:@"Images/MoreImages"]; NSString *earth = [[NSBundle mainBundle] pathForResource:@"Matthijs" ofType:@"png"];

 

编译之后,mainBundle的资源都是放到RootFolder下,所以,可以直接访问,不要指定内部路径

 

3、使用其他的Bundle

 

NSString 
*resourceBundle = [[
NSBundle 
mainBundle] pathForResource:@
"Resources" 
ofType:@
"bundle"
];
    
NSLog
(@
"resourceBundle: %@"
, resourceBundle);
    
NSString 
*earth = [[
NSBundlebundleWithPath
:resourceBundle] pathForResource:@
"Matthijs"
ofType:@
"jpg"
inDirectory:@
"Images/MoreImages"
];
 
    
NSLog
(@
"path: %@"
, earth);

使用Custom bundle,访问内部的子文件夹,需要指定inDirectory参数,这个mainBundle不同,这是为何?

注意:Since
bundles other than the main bundle can have folders embedded inside them, to access
files inside folders of a bundle other than the main bundle it is best to use the pathFor
Resource:ofType:inDirectory: method of
NSBundle 
to explicitly specify the folder in
which a specific file/resource exists.

转载于:https://www.cnblogs.com/kenshinobiy/p/4735923.html

你可能感兴趣的文章
Web项目测试流程总结
查看>>
flex布局
查看>>
第三方的 NET 数据库连接提供者,Lightswitch
查看>>
DOS命令行下mysql 基本命令
查看>>
python3 socke 服务端与客户端实现(回炉)
查看>>
模块调用
查看>>
java中遍历MAP的几种方法
查看>>
浅谈 Object.observe
查看>>
mysqld服务器系统变量和状态变量
查看>>
自己动手写计算器v1.1
查看>>
程序进程逐步显示,并可以控制停止和继续以及跳转
查看>>
codevs2894、2837、1669、2503、3231
查看>>
HashMap和Hashtable的区别
查看>>
Extjs 分页实例 后台php
查看>>
用MathType编辑反三角函数的方法
查看>>
TVS管性能及选型总结
查看>>
【Go语言】错误与异常处理机制
查看>>
判断数组有哪些方法
查看>>
Firefox 在LR录制过程中添加例外的问题解决方法
查看>>
quartz表达式
查看>>