在开发IOS应用时,我们经常需要将素材分类,并放入相应地子目录中。
在开发代码时,需要访问这些素材时,就需要获取对应的子目录路径。那么如何获取呢?
获取应用路径
首先,要找到应用所在的路径。
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
获取子目录路径
假设有一个子目录名字叫做images,那么可以按照下面的方法获取其路径。
NSString *imagePath = [bundlePath stringByAppendingPathComponent:@"images"];
找到这个路径就OK了,从这里开始,你就可以为所欲为了,比如遍历子文件夹中所欲的文件等。
别高兴太早
即使有了上面的代码,你也不一定会成功,为什么呢?因为IOS应用默认的文件组织结构是平坦(flat)模式,也就是没有子目录!你在Xcode中可以看到很多目录,但是生成的文件中却没有子目录。导致上面的代码失效。怎么办?
- 将你要添加的子目录拖拽到XCode中(或者右键单击工程选择-添加文件到工程),
- 在弹出的对话框中要选择 "Create Folder References for any added folders",切记!
如果我的子文件夹已经添加到了工程中,但是没有选择"Create Folder References for any added folders"怎么办?
没关系,直接删除他,删除的时候选择Remove References. 不要Move to Trash,然后重新添加一按照上面的步骤添加一次即可。
另外一个方法是在Build Parse中的 Copy Bundle Resources选项下设置。如下图所示,把要copy的子目录添加进去即可。
不同颜色的文件夹
在XCode中,有两种颜色的文件夹,一种是黄色,一种是蓝色,只有蓝色得文件夹才会被copy到app目录中,黄色的文件夹只是用来组织文件的,并不代表应用的最终结构!
Happy Coding!!!