我有以下代码可以正常工作,但只有当文件位于项目根目录中时才能正常工作:
NSURL *soundFileURL = [[NSBundle mainBundle]
URLForResource:@"coffeeshop"
withExtension:@"mp3"
//subdirectory:@"data/audio"
];
我试图通过取消注释上面的代码将文件放在子目录data/audio
中,但它停止工作,当我执行NSLog(@"Output: %@",soundFileURL);
时,我得到Output: (null)
答案 0 :(得分:0)
如果您已将资源添加到项目中,则需要知道是将它们添加到项目中还是将其添加为文件(和文件夹)的引用。如果您将它们添加到项目中而不添加它们作为参考,那么任何文件和文件夹将被展平到主捆绑代码。如果通过引用添加它们,则可以在现有文件夹结构中访问它们(如您所愿)。
如果要通过文件夹和子文件夹访问它们,则需要确保使用“为添加的文件夹创建文件夹引用”选项将资源添加到项目中。
如果您已将它们添加到项目中并希望更改它们的引用方式,最简单的方法是从项目树中删除它们并将其拖放到项目中。您将获得一个选项窗口,其中包含如何添加它们的选项(参考与否)以及将它们添加到的目标。