NSBundle 需要注意的
2016-03-28 本文已影响0人
___Samson
//加载plist数据
NSString*filePath = [[NSBundle mainBundle]pathForResource:@"xxx"ofType:@"plist"];
self.shops= [NSArray arrayWithContentsOfFile:filePath];
当加载一个资源文件的时候,文件路径都是全路径,要找到这个全路径,这里就需要用到NSBundle 。
1、一个NSBundle对象对应一个资源包(图片、音频、视频、plis等文件)
2、nsbundle 的作用就是用来访问对应的资源包的内部文件,获取全路径
3、项目中添加的资源都会被添加到主资源包中
4、利用mainBundle获得plist文件在主资源包中的全路径
但是有时候用上面的方法找不到文件,但是项目中确实有该文件,这时候很可能就是文件路径错误
NSString*filePath = [[NSBundle mainBundle]pathForResource:@"xxx"ofType:@"plist"];
@"xxx"这里可能是@"dd\\xxx' 因为该资源文件在项目中的子文件夹中 这里[NSBundle mainBundle] 只负责找到资源包,不负责继续找到里面的子文件夹,所以需要加上文件夹dd\\xxx
另外NSBundle mainBubdle 中的文件 在工程文件设置中 Build Phases 中可以看到