带有子目录路径的NSURL

时间:2014-01-24 18:59:26

标签: ios nsurl nsbundle

我有以下代码可以正常工作,但只有当文件位于项目根目录中时才能正常工作:

NSURL *soundFileURL = [[NSBundle mainBundle]
                       URLForResource:@"coffeeshop"
                       withExtension:@"mp3"
                       //subdirectory:@"data/audio"
                       ];

我试图通过取消注释上面的代码将文件放在子目录data/audio中,但它停止工作,当我执行NSLog(@"Output: %@",soundFileURL);时,我得到Output: (null)

1 个答案:

答案 0 :(得分:0)

如果您已将资源添加到项目中,则需要知道是将它们添加到项目中还是将其添加为文件(和文件夹)的引用。如果您将它们添加到项目中而不添加它们作为参考,那么任何文件和文件夹将被展平到主捆绑代码。如果通过引用添加它们,则可以在现有文件夹结构中访问它们(如您所愿)。

如果要通过文件夹和子文件夹访问它们,则需要确保使用“为添加的文件夹创建文件夹引用”选项将资源添加到项目中。

如果您已将它们添加到项目中并希望更改它们的引用方式,最简单的方法是从项目树中删除它们并将其拖放到项目中。您将获得一个选项窗口,其中包含如何添加它们的选项(参考与否)以及将它们添加到的目标。