Не удалось загрузить изображение, на которое ссылается перо в пакете, работающем на устройстве - PullRequest
63 голосов
/ 31 января 2011
SplitView[1290:307] Could not load the "canary04.png" image referenced from a nib in the bundle with identifier "xx.co.mycompany.ipad.SplitView"

Я получаю ошибку только при запуске на устройстве. В симуляторе нет проблем с запуском.

Я использую изображение непосредственно в конструкторе интерфейсов с UIImageView.

РЕДАКТИРОВАТЬ: я добавил другое изображение в другое перо, и это без проблем работает.

У кого-нибудь есть идеи?

Ответы [ 34 ]

3 голосов
/ 21 мая 2015

Решение 1:

В моем случае я скопировал папку с изображениями и даже установил флажок «Назначение: при необходимости копировать элементы» .Однако он не был добавлен в «Копирование ресурсов комплекта» раздела «Фазы сборки».

Вы можете добавить изображения следующим образом:

  1. Выбрать Цели
  2. Выбор «Фазы сборки» вкладка
  3. Выбор «Копирование ресурсов комплекта »
  4. Нажмите "+" (Плюс) кнопка под ним
  5. Найдите изображения и добавьте их

Screenshot for solution 1

Решение 2:

Удалите изображения , выбрав «Переместить в трэш».Снова добавьте изображения в ваш проект с пометкой "Пункт назначения: копировать элементы при необходимости".

Note : Make sure that you add images in Assets.xcassets folder and not outside it.
3 голосов
/ 08 марта 2014

В моем случае это было из-за того, что Photoshop неправильно сохранял мои файлы.В диалоговом окне сохранения файла я нажимал на myfile.png, пытаясь перезаписать этот файл, и он сохранял файл с расширением png, но в формате фотошопа.формат файла в PNG перед тем, как щелкнуть файл, который я хотел перезаписать, сохранив, таким образом, реальный файл png и, таким образом, читаемый iOS.Интересно, что конструктор интерфейса показал мои файлы psd-as-png просто отлично.

В общем, убедитесь, что ваш файл действительно в том формате, в котором вы его считаете, и поэтому iOS ожидает.

2 голосов
/ 04 июня 2015

Я тоже получал эту ошибку. Я опишу свой сценарий:

У меня есть подкаталог "img", в котором есть несколько png.
Один из этих png - "ic_timeprogress_000.png"

В раскадровке (визуальный дизайнер) у меня был imageView, и для изображения было установлено значение "ic_timeprogress_000.png" (не программно). Дизайнер правильно показал imageView:

imageView in subdirectory

Хотя при запуске приложения выдается ошибка.

Поэтому в раскадровке я изменил (я настаиваю: не программно) с «ic_timeprogress_000.png» на «img / ic_timeprogress_000.png», что приводит к неправильному отображению изображения в конструкторе, но правильному отображению при запуске (без ошибок )

imageView in subdirectory

Хотя я изменяю imageView.image программно, поэтому это «исходное изображение» никогда не используется.

1 голос
/ 10 января 2013

Проверьте название вашего изображения. Если содержит несколько пробелов, изображение будет отображаться во время работы в симуляторе, но не в устройстве. Во время работы оно проверяет имя с учетом регистра и т. Д.

1 голос
/ 01 августа 2012

Моя проблема заключалась в том, что я сохранил изображение как .jpg и изменил имя на .png (все еще было в формате jpg).Работало с симулятором

1 голос
/ 25 декабря 2015

Я также столкнулся с проблемой, состоящей в том, что jpeg-файлы не могут быть успешно загружены, однако я решил ее, не меняя их на формат png: например, если у вас есть изображение с именем "bg.jpg" , don 't "bg" в раскадровке (это имя указано в раскрывающемся списке выбора), вместо этого вы должны явно указать "bg.jpg" в поле имени.

Для программирования, основанного на просмотре изображений, я думаю, что использование расширения .jpg, например [UIImage imageNamed:@"xx.jpg"], также должно работать (хотя я не проверял).

1 голос
/ 31 января 2011

Убедитесь, что в вашем проекте существует canary04.png и что он не был удален.

1 голос
/ 10 ноября 2014

У меня была другая проблема в iOS 8. В моем случае проблема заключалась в том, что я выбрал Device Specific для набора изображений, а затем выбрал iPad.Изменение этого значения на «Универсальное» решило проблему.

Этот параметр можно найти в файле images.xcassets, в третьем столбце отображается инспектор атрибутов для набора изображений.

В этом случаеизображения не будут отображаться в раскадровке или в файле NIB, даже если вы добавили их в images.xcassets.Они также не будут отображаться в симуляторе или устройстве.

1 голос
/ 24 декабря 2015

Я столкнулся с этой проблемой, когда пытался установить изображение для imageView в файле Interface Builder (.xib).

(я использовал Image Assets)

У меня было 2 изображения с theImage.jpeg и theImage@2x.jpg Интерфейсный конструктор может отображать истинные изображения во время компиляции с этими jpg / jpeg форматами. Но у меня есть эта ошибка во время выполнения:

Could not load the "theImage" image referenced from a nib in the bundle with identifier "org.etc.etc"

Затем я изменил форматы файлов изображений на .png, и это сработало!

Попробуйте также это решение, если у вас есть разные форматы для изображений, которые вы пытаетесь установить.

0 голосов
/ 23 декабря 2015

По какой-то причине добавление расширения файла в конец заголовка изображения - это то, что решило это для меня.

он ссылался на «canary04» до н.э. Это то, что я назвал изображение, но как только я изменил заголовок изображения на заголовок самого изображения (canary04.png), это было решено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...