Я использую Xcode 11.4 и Swift 5.1.2 для разработки приложения iOS, работающего с животными, которое интенсивно использует изображения JPEG, связанные с самим приложением. Изображения хранятся вместе в наборах изображений, и для каждого животного определено несколько наборов изображений. Группа наборов изображений каждого животного хранится в родительском каталоге, предоставляющем пространство имен, потому что набор изображений для одного типа изображения имеет одинаковое имя для всех животных.
Некоторые наборы изображений в одном пространстве имен животных имеют схожие имена, потому что они по сути являются то же изображение. Единственным исключением является то, что один набор изображений предназначен для портретной ориентации экрана, а другой - для альбомной. Правило состоит в том, что в наборе альбомных вариантов ландшафта есть суффикс .widescreen
в своем названии (например, для фотографии профиля портретная версия набора изображений photo.profile
, а для альбомной ориентации - photo.profile.widescreen
набор изображений).
По сути, структура примерно такова:
animal1/
photo.profile.imageset
photo.profile.widescreen.imageset
...
animal2/
photo.profile.imageset
photo.profile.widescreen.imageset
...
Теперь о проблеме. Похоже, что когда я загружаю фотографию из широкоэкранного набора изображений, используя UIImage.init(named: "animalid/photo.profile.widescreen")
, вместо него загружается изображение из набора animalid/photo.profile
. Это как если бы конструктор UIImage
соответствовал только части полного идентификатора набора изображений.
Просто из любопытства я попытался переименовать широкоэкранный набор изображений в что-то вроде photo.profile2
, и все это начало работать как и ожидалось.
Признаюсь, я не опытный iOS разработчик, поэтому я могу упускать из виду кое-что фундаментальное, но я сделал go в документации Каталога активов Apple , и я верю, что я получил представление о том, как это работает и каковы подводные камни.
Еще одна вещь, которую я должен упомянуть, - это то, что я написал сценарий Python, чтобы помочь мне сгенерировать структуру комплекта активов из-за большого количества животных, включенных в приложение. Однако я смоделировал вывод сценария на основе предыдущих экспериментов, выполненных вручную, и XCode не сообщает о каких-либо проблемах с содержимым, поэтому я не думаю, что это должно иметь какой-либо эффект (особенно учитывая эксперимент с переименованием одного набора изображений, как описано выше).
Буду благодарен за любые идеи.