NSBundle pathForResource返回带有子目录的nil [英] NSBundle pathForResource returns nil with subdirs

查看:93
本文介绍了NSBundle pathForResource返回带有子目录的nil的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序中有一堆目录和文件,例如images/misc/mainmenu_background..我正在"iPad Simulator 3.2"中运行以下代码:

I have a bunch of directories and files in my app, for instance images/misc/mainmenu_background.. I'm running the following code in the "iPad Simulator 3.2":

NSString *images = [[NSBundle mainBundle] pathForResource:@"images" ofType:nil];
NSString *images_misc = [[NSBundle mainBundle] pathForResource:@"images/misc" ofType:nil];
NSString *images_misc_file = [[NSBundle mainBundle] pathForResource:@"images/misc/mainmenu_background.png" ofType:nil];

此调用后,images包含路径/Users/wic/Library/Application Support/iPhone Simulator/3.2/Applications/8F67150B-71E6-4735-8CC6-38B3CE6D3568/Foo.app/images.

但是images_miscimages_misc_filenil .仔细检查我的文件系统以检查文件是否存在:

But images_misc and images_misc_file are nil. Double-checking my file system to check if the file is there:

$ ls -l "/Users/wic/Library/Application Support/iPhone Simulator/3.2/Applications/8F67150B-71E6-4735-8CC6-38B3CE6D3568/Foo.app/images/misc/mainmenu_background.png"
-rw-rw-rw-  1 wic  staff  30307 16 Feb 21:09 /Users/wic/Library/Application Support/iPhone Simulator/3.2/Applications/8F67150B-71E6-4735-8CC6-38B3CE6D3568/Foo.app/images/misc/mainmenu_background.png

显然文件在那里.

如果我切换到"iPad Simulator 4.0"或任何其他模拟器版本,一切都会按预期进行.

If I switch to "iPad Simulator 4.0", or any other simulator version for that matter everything works as expected.

我的设置是否有问题,还是iPad 3.2中NSBundle的此正确行为?不幸的是,我没有实际的物理iPad可以对其进行测试.

Is there something wrong with my setup, or is this correct behavior for NSBundle in iPad 3.2? I have no actual physical iPad to test it on unfortunately.

推荐答案

如果需要访问目录中的文件,则应改用-[NSBundle pathForResource:ofType:inDirectory:].因此,您的代码应改为

If you need to access a file in a directory, you should be using -[NSBundle pathForResource:ofType:inDirectory:] instead. So your code should instead look like

NSString *images_misc_file = [[NSBundle mainBundle] pathForResource:@"mainmenu_background" ofType:@"png" inDirectory:@"images/misc"];

这篇关于NSBundle pathForResource返回带有子目录的nil的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆