Что такое папка пакетов приложений и ресурсов

Мой вопрос касается пакета приложений в проекте. Я читал об этом и могу понять некоторые основные вещи (я не являюсь носителем английского языка). Я понимаю, что resources folder используется для хранения файлов, которые будут использоваться в проекте, например. мультимедийные файлы (изображения, аудио, видео и т. д.) и должны находиться в application bundle для идентификации.

Итак, какой смысл, если я хочу использовать изображения и другие ресурсы в своем проекте? В моем другом связанном вопросе Я не могу использовать их, ссылаясь на NSImage imageNamed:.

Я использовал следующее, но безуспешно загружал свои файлы:

  • Методы NSBundle
  • imageNamed:@"string" с/без расширения файла
  • изображения находятся в папке ресурсов

Я изучаю Cocoa и Objective-C, и, конечно, это отличается от C++ или Java, когда я хочу создать ImageIcon или QImage.


person Giquo    schedule 08.12.2013    source источник
comment
Можете ли вы предоставить нам код, который вы пробовали и не работали? Также убедитесь, что файлы находятся внутри папки Target Membership. Просто выберите файл и посмотрите на File Inspector справа.   -  person Alex Cio    schedule 08.12.2013
comment
NSImageView *accessory = [[NSImageView alloc] initWithFrame:NSMakeRect(0,0,200,55)]; [аксессуар setImageScaling: NSScaleToFit]; [аксессуар setImage:[NSImage imageNamed:@logosH.png]]; [myAlert setAccessoryView:аксессуар]; Самое странное, что мне удается загрузить одно из этих изображений, используя IB через NSImageView, но в коде нет   -  person Giquo    schedule 08.12.2013
comment
файл проверяется в целевом членстве   -  person Giquo    schedule 08.12.2013
comment
@user3078163 user3078163 Добавьте эту информацию в свой вопрос, нажав edit, а затем изменив свой вопрос (вместо добавления комментариев).   -  person Sam Spencer    schedule 08.12.2013


Ответы (1)


Возможно, я не совсем понял проблему, так что поправьте меня, если я ошибаюсь. Я считаю, что проблема связана с целевым членством вашего изображения или с тем, как вы извлекаете изображение в своем коде.

Добавление изображения в цель вашего проекта будет соответствующим образом копировать ресурс во время компиляции. Чтобы добавить изображение в цель, выберите его в файловом навигаторе, а затем откройте Панель утилит. На панели утилит выберите вкладку Инспектор файлов. Найдите раздел Target Membership и убедитесь, что изображение выбрано для нужных целей:

Xcode 5 Target Membership

Вы имеете в виду, что вы не можете использовать метод NSImage imageNamed: для извлечения ресурсов? Если это так, вы можете получить ресурс следующим образом (из основного пакета ресурсов):

NSString *imageName = [[NSBundle mainBundle] pathForResource:@"image1" ofType:@"png"];
NSImage *imageObj = [[NSImage alloc] initWithContentsOfFile:imageName];

Также похоже, что у вас уже есть хороший ответ на другой связанный с вами вопрос.

person Sam Spencer    schedule 08.12.2013