@NSBundle包,是一种特定的文件类型,一个主要作用是获取Resources文件中的资源
bundle是一个目录,其中包含了程序会使用的资源,这些资源包含了如图像、声音、编译好的代码、nib文件;cocoa提供了一个类NSBundle。我们的程序是一个bundle。在finder中,一个应用程序看上去和其他文件没有什么区别,但是实际上它是一个包含了nib文件、编译代码、以及其他资源的目录。我们把这个目录叫做程序的main bundle。
[NSBunde mainBundle]是获得NSBundle的一个单例对象,它已经设置了默认的resourcePath,也就是你的app打包后的路径,[[NSBundle mainBundle] resourcePath]就是获得完整的打包后的app路径。
iOS程序有自己的文件访问机制,只能在自己的沙盒内。
UIImage * img = [UIImage imageNamed:@"icon.png"];
这段代码从相对路径加载了一个png图片资源作为UIImage对象,没有任何问题。因为它在内部已经偷偷把路径转化为相对路径了。
接下来,如果要加载一些自定义格式的文件或者数据,就会出现相对路径和绝对路径的问题。