Присвоение именным активам изображений с использованием похожих имен - PullRequest
0 голосов
/ 19 апреля 2020

Я использую 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 не сообщает о каких-либо проблемах с содержимым, поэтому я не думаю, что это должно иметь какой-либо эффект (особенно учитывая эксперимент с переименованием одного набора изображений, как описано выше).

Буду благодарен за любые идеи.

...