Различия путей файлов iOS между устройством и симулятором - PullRequest
0 голосов
/ 30 декабря 2011

Это похоже на этот вопрос: iOS Objective-C Имя файла образа / путь различного поведения между симулятором и устройством

У меня есть следующий путь в 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. Я знаю о различиях в случаях, вызывающих подобные вещи, но почему первая версия с неверным путем все еще работает в симуляторе?

Для записи, если я сделаю копию clouds_high.png только в каталоге ресурсов, то симулятор выберет эту версию поверх оригинальной в Landscape для версии A. Использование версии B заставит симулятор выбрать одну из Landscape как и ожидалось. Но, как я упоминал ранее, устройство iOS работает только с путем, указанным относительно Resources. Почему это?

1 Ответ

0 голосов
/ 30 декабря 2011

Попробуйте использовать это, чтобы получить ваши пути. Он никогда не выйдет из строя, ни в симуляторе, ни на устройстве, если имя файла, которое вы предоставляете, недопустимо.

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

Для вашего случая:

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