(iphone) imageNamed, когда существует несколько файлов с одинаковым именем?

В ответ на вопрос "Как работает imageNamed, когда в каталоге ресурсов находится несколько файлов с данным именем?

Есть ли способ различать два разных файла с одинаковыми именами (но разными путями)?

Спасибо

1 ответ

Решение

Папки в любом пакете XCode являются "группами". То есть они не являются актуальными каталогами. Файлы в этих группах по-прежнему находятся в корне пакета.

Таким образом, наличие двух (или более) файлов с одинаковыми именами в комплекте приложений невозможно.

Смотрите: http://majicjungle.com/blog/?p=123

Проблема с группами:

Структура каталога теряется, когда он копируется в приложение iphone, и поэтому в вашем комплекте приложений находится большой список всех ваших ресурсов в базовом каталоге. В результате этого дублирующиеся имена файлов становятся проблемой. Если какие-либо файлы в вашей структуре каталогов на диске содержат одно и то же имя файла, процесс компоновки все молчит. Похоже, что это "первый в выигрыше", только один из ресурсов делает его в комплекте приложений. Так что нехорошо, если у вас есть куча пакетов разных уровней, каждый из которых содержит свой файл Terrain.png.

Если вы поддерживаете структуру каталогов, создавая ссылки на папки, это устраняет проблему с дублирующимися именами файлов. Тем не менее, получение файлов является проблемой.

Что вы можете сделать, это использовать класс NSBundle:

[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"path/to/file.jpg"]
Другие вопросы по тегам