这与此问题类似:iOS Objective-C Image file name/path different behavior betwewen simulator and device
我在Xcode中有以下路径,其中Landscape
是一个文件夹,而不是一个组:
Resources/Landscape/clouds_high.png
这两个都在模拟器中加载图像:
// Version A. Should only work for Groups, where image is in root
[CCSprite spriteWithFile:@"clouds_high.png"];
// Version B. Should work for my case (with a Landscape Folder)
[CCSprite spriteWithFile:@"Landscape/clouds_high.png"];
但是,正如预期的那样,只有第二个适用于iOS设备。我知道造成这种情况的情况有所不同,但是为什么带有无效路径的第一个版本仍在模拟器中工作?
对于记录,如果我在Resources目录中复制了clouds_high.png
,那么模拟器将选择此版本而不是版本A的Landscape
中的原始版本。使用版本B会导致模拟器按预期选择Landscape
中的那个。但正如我之前提到的,iOS设备仅适用于相对于Resources
指定的路径。这是为什么?
答案 0 :(得分:0)
尝试使用它来获取路径。除非您提供的文件名无效,否则它在模拟器和设备上都不会失败。
[[NSBundle mainBundle] pathForResource:@"clouds_high" ofType:@"png"];
对于你的情况:
[CCSprite spriteWithFile:[[NSBundle mainBundle] pathForResource:@"clouds_high" ofType:@"png"]];