(iphone) imageNamed, когда существует несколько файлов с одинаковым именем? - PullRequest
7 голосов
/ 03 января 2011

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

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

Спасибо

1 Ответ

8 голосов
/ 03 января 2011

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

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

См .: http://majicjungle.com/blog/?p=123

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

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

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

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

[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"path/to/file.jpg"]
...