2009-05-18 3 views
0

Почему я могу загрузить локальный XML-файл из основного пакета, но я не могу загружать изображения?iPhone - Загрузка локальных изображений из локального xml-файла

NSString * путь = [[NSBundle mainBundle] resourcePath];

Это загружается (я знаю, потому что я могу отследить) /Пользователи/мне/Library/Application Support/iPhone Simulator/User/Applications/5B888456-40FF-4C72-A2ED-5D5CFA287777/MyApp.app/тест. XML

Это изображение никогда не загружает (и не делает никакого изображения): /Пользователи/мне/Библиотека Поддержка/Application/iPhone Simulator/User/Applications/5B888456-40FF-4C72-A2ED-5D5CFA287777/MyApp.app/фон. png

+1

Что вы имеете в виду, когда говорите, что изображение никогда не загружается? Как вы пытаетесь загрузить его? – Ryan

+0

-1. Недостаточно кода, нет кода, показывающего ожидаемое и фактическое поведение (например, с утверждениями?) ... –

ответ

3

Вы можете использовать [UIImage imageNamed:@"background.png"].

Это загрузит background.png (который должен находиться в папке «Ресурсы» в Xcode).

+0

Я пытаюсь составить строку для отправки другому методу, который загружает изображение.Он принимает строку, затем использует NSURL * url = [NSURL URLWithString: imgPath]; для создания NSURLConnection для извлечения изображения. Я знаю, что звучит запутанно, но образ, который я пытаюсь загрузить, может быть или не быть в mainBundle. Если изображение находится на удаленном сервере, оно загружается штрафом, отправив правильный URL-адрес, но я не могу загрузить его из основного пакета. Если изображение IS находится в mainBundle, какую строку я передаю методу? – 2009-05-19 00:01:22

+0

Почему бы не сначала проверить imageNamed, и если это не удается, постройте свой URL-адрес? –

1

Есть две возможности:

1) Либо ваше имя файла изображения не собственно. Это означает, что имя файла зависит от регистра. Так что, возможно, речь идет о маленьких маленьких письмах.

2) Возможно, вы удалили имя цели из свойства изображения. Это означает, что ваши изображения не являются частью цели вашего проекта, который вы компилируете. Чтобы убедиться в этом, щелкните правой кнопкой мыши по любому имени изображения внутри вашего объекта XCode -> Выберите Получить информацию -> Выбрать целевые вкладки в диалоговом окне «Сведения о файле» -> Проверить статус флажка рядом с целевым именем/с. В случае, если он выбран/проверен, возникает странная проблема. Но если он не выбран/не отмечен, это означает, что изображение не добавляется в файл пакета, который создается после компиляции.

Третья возможность здесь, возможно, вы не добавили изображения, о которых вы говорите. Повторно проверьте иерархию проектов & Посмотрите все ресурсы или нет.

1

Что-то вроде

UIImage *testimg = [UIImage imageNamed:myfilename]; 

if (nil==testimg) [testimg initWithContentsOfURL:myurl]; 

Я от компилятора сейчас, поэтому я не могу проверить, может ли вам нужно загрузить его в объект NSData, прежде чем сделать это изображение. Вы также должны поместить initWithContents ... в try ... catch ... finally block.

0

Привет Используйте следующий код

[UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @ "фон" OfType: @ "PNG"]];

3

Вы говорите в комментарии, что вы составляете NSURL для пути. Чтобы сделать это для локального пути файловой системы, например файла в вашем комплекте, вам необходимо использовать NSURL fileURLWithPath:.

+0

Но вопрос в том, что касается загрузки локальных изображений. Таким образом, нет необходимости использовать NSURL, а затем дать его в методе UIImage. – Sagar