Есть 2 решения: 1: изменить настройки изображения:
Build Action = Content
Copy to output directory = Copy if newer
Source="pack://siteoforigin:,,,/Resources/UserCost2013Open16.png"
2: при использовании приложения вместо siteoforigin в исходном пути, у вас есть возможные пути:
a) Изображение будет в SubFolder под названием «Ресурсы», а файл .exe будет небольшим
Source="pack://application:,,,/Resources/UserCost2013Open16.png"
Build Action = Content
Copy to output directory = Copy if newer
b) Изображение будет включено в .exe, и никакая подпапка с файлом изображения не будет существовать
Source="pack://application:,,,/Resources/UserCost2013Open16.png"
Build Action = Resource
Copy to output directory = Copy if newer
Действительно ли файл включен в цель (и будет ли он скопирован в комплект)? Есть два способа узнать / установить это:
Первый способ: щелкнуть правой кнопкой мыши (или Cmd-click) в файле, выберите «Получить информацию». Затем перейдите на вкладку «Цели» и убедитесь, что файл указан для желаемых целей.
Второй способ: щелчок правой кнопкой мыши (или Cmd-clock) в браузере проекта в заголовке браузер файлов (вероятно, он будет читать «Группы и файлы»). Затем выберите «Целевое членство». Теперь у вас есть флажки рядом с каждым файлом, который может быть членом целевой (например, файлов или ресурсов .m). Опять же, убедитесь, что флажок рядом с вашим файлом отмечен.
Так как я здесь googled, не нашел ответа, но потом обнаружил его сам, я оставлю его здесь ...
У меня было 2 файла: tray.png и tray @ 2x .png для Retina. Файлы были добавлены в «Копировать ресурсы Bundle» автоматически.
Но:
[[NSBundle mainBundle] pathForResource:@"tray" ofType:@"png"];
не вернул файл, фактически скопированный в комплект! Причина: IDE создала один файл TIFF tray.tiff (joint tray.png и tray@2x.png), поэтому ... ofType:@"tiff"]
помог!
Combine high resolution artwork
/ COMBINE_HIDPI_IMAGES
.
– Klaas
9 July 2015 в 10:11
Сегодня я столкнулся с этой проблемой с проектом командной строки.
К счастью, решение легко. Просто перейдите к разделу «Сборка фаз», нажмите «+» и добавьте новую фазу «Копировать файлы». Выберите «Ресурсы» в качестве «Место назначения» и добавьте все файлы, которые вы хотите использовать.
Теперь вы можете использовать [NSBundle mainBundle]
, и он должен работать!
Я пытался заставить мое приложение iPhone использовать базу данных sqlite по умолчанию, и приложение darn не смогло найти его. Оказалось, что я должен был убедиться, что файл .sqlite находится в ресурсе связки.
теперь ваше приложение найдет эту базу данных sqlite по умолчанию.
swift build
. Любое решение?
– Jay Wong
8 February 2018 в 23:13
Убедитесь, что вы правильно назвали имя файла ресурса. Я только что узнал, что это трудно. :)
Имя файла чувствительно к регистру iPad. Вам нужно использовать маленькие буквы.
Моя проблема и решение очень похожи на Дмитрия Исаева. Я попытался получить путь для xib-файла. Оба вызова (в Swift) pathForResource («myfile», ofType: «xib») и pathForResource («myfile.xib», ofType: nil) сбой.
Решение заключается в использовании расширения «nib», вместо этого:
pathForResource("myfile", ofType: "nib")
mainBundle
будет неправильным ... вместо этого попробуйтеbundleForClass:[SomeClassFromApi class]
. – DarkDust 16 October 2010 в 18:09Command-line Tool
, и я не могу загрузить файл сNSBundle pathForResource
. Должен ли я переключиться на тип проектаCocoa Application
? Я не уверен, что следую вашему предложению добавить новую цельApplication
; вы хотите добавить новую цель в существующий проект инструмента командной строки? – raffian 24 September 2012 в 00:13