设备和模拟器之间的iOS文件路径差异

时间:2011-12-30 14:12:59

标签: ios filesystems filepath

这与此问题类似: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指定的路径。这是为什么?

1 个答案:

答案 0 :(得分:0)

尝试使用它来获取路径。除非您提供的文件名无效,否则它在模拟器和设备上都不会失败。

[[NSBundle mainBundle] pathForResource:@"clouds_high" ofType:@"png"];

对于你的情况:

[CCSprite spriteWithFile:[[NSBundle mainBundle] pathForResource:@"clouds_high" ofType:@"png"]];