NSBundle 需要注意的


//加载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 中可以看到

你可能感兴趣的:(NSBundle 需要注意的)