(iphone) imageNamed, когда существует несколько файлов с одинаковым именем?
В ответ на вопрос "Как работает imageNamed, когда в каталоге ресурсов находится несколько файлов с данным именем?
Есть ли способ различать два разных файла с одинаковыми именами (но разными путями)?
Спасибо
1 ответ
Папки в любом пакете XCode являются "группами". То есть они не являются актуальными каталогами. Файлы в этих группах по-прежнему находятся в корне пакета.
Таким образом, наличие двух (или более) файлов с одинаковыми именами в комплекте приложений невозможно.
Смотрите: http://majicjungle.com/blog/?p=123
Проблема с группами:
Структура каталога теряется, когда он копируется в приложение iphone, и поэтому в вашем комплекте приложений находится большой список всех ваших ресурсов в базовом каталоге. В результате этого дублирующиеся имена файлов становятся проблемой. Если какие-либо файлы в вашей структуре каталогов на диске содержат одно и то же имя файла, процесс компоновки все молчит. Похоже, что это "первый в выигрыше", только один из ресурсов делает его в комплекте приложений. Так что нехорошо, если у вас есть куча пакетов разных уровней, каждый из которых содержит свой файл Terrain.png.
Если вы поддерживаете структуру каталогов, создавая ссылки на папки, это устраняет проблему с дублирующимися именами файлов. Тем не менее, получение файлов является проблемой.
Что вы можете сделать, это использовать класс NSBundle:
[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"path/to/file.jpg"]