2011-12-30 2 views
0

Это похоже на этот вопрос: iOS Objective-C Image file name/path different behavior betwewen simulator and deviceIOS различие пути к файлу между устройством и имитатором

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

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

+0

Что такое структура файла в папке целевой .app, делает 'clouds_high.png' лежать только в' папке Landscape'? (щелкните правой кнопкой мыши на приложении в панели «Продукты», откройте вкладку «Finder» и «Показать содержимое пакета»). И еще один вопрос: это такое же поведение после удаления приложения с Simulator и устройства и чистого проекта? – brigadir

+0

Да, единственный экземпляр этого файла во всем приложении находится в папке «Пейзаж». И да, я пытался очистить и удалить. –

ответ

0

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

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

В вашем случае:

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

Это возвращает '(null)' ... Не знаете, почему. –

+0

какая часть возврат null? - pathForResource: ofType: or - spriteWithFile:? – Vlad

+0

'NSLog (@"% @ ", [[NSBundle mainBundle] pathForResource: @" clouds_high "ofType: @" png "]);' given '(null)' –

Смежные вопросы