2011-10-07 2 views
0

Я создал простой XML-Parser для анализа моих rss-каналов в моем приложении. id, currentstatus, изображение простого для анализа из XML-файла. Но я не могу получить изображение из файла XML. , Я извлекаю все изображения из xml-файла. но noimage.jpg не отображается. не могли бы вы мне помочь.Как распечатать xml-изображение в IOS?

код XML

<Agent> 
<id>3422</id> 
<currentstatus>Logged Off</currentstatus> 
<picture>1</picture> 
</Agent> 
<Agent> 
<id>3432</id> 
<currentstatus>Logged Off</currentstatus> 
<picture>0</picture> 
</Agent> 

я попытался следующий код:

UIImage * cellimages = [[UIImage alloc]init]; 
NSString *string1 = @"http://telecomstats.co.uk/images/LLReaderProfile/"; 
NSString *cellvalue =[[[[self rssParser]rssItems]objectAtIndex:indexPath.row]picture]; 
NSString* disable = [[NSString alloc] initWithString:@"0"]; 


if (cellvalue == disable) 
{ 
cellimages = [UIImage imageWithContentsOfFile:@"http://telecomstats.co.uk/images/LLReaderProfile/noimage.jpg"]; 
} 
else  { 

    cellimages = [string1 stringByAppendingString:[[[[self rssParser]rssItems]objectAtIndex:indexPath.row]id]]; 
    cellimages = [cellimages stringByAppendingString: @".jpg"]; 

} 

cellimages = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:cellimages]]]; 
cell.imageView.image = cellimages; 

ли кто-то может мне помочь? Спасибо за любую помощь и понимание.

+0

Правильные ли URL? По крайней мере, noimage URL-адрес дает домен не найден. –

+0

Спасибо за повтор, извините, что я ввожу неправильный URL-адрес. URL-адрес: static.telecomstats.co.uk/images/psychic/LLReaderProfile/... Я пробовал следующий метод, а также cellimages = [string1 stringByAppendingString: @ "noimage.jpg" ]; но не использовать – Livelines

ответ

0

Вы используете cellimages, который является объектом UIImage, чтобы хранить строки в вашей ветке else. Кроме того, когда cellvalue == disable верно, то выполнить это:

cellimages = [UIImage imageWithContentsOfFile:@"http://telecomstats.co.uk/images/LLReaderProfile/noimage.jpg"]; 
cellimages = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:cellimages]]]; 

Там вы положили UIImage в [NSURL URLWithString:], который, вероятно, не будет работать; на самом деле этот код должен давать довольно некоторые предупреждения. Попробуйте правильно разделить между строкой URL и отображаемым объектом изображения. Поместите все материалы URL в NSString и получите UIImage после того, как вы определили правильный URL.

Обратите внимание, что у вашего кода есть и другие проблемы, особенно если вы используете dataWithContentsOfURL и imageWirhContentsOfFile, оба из которых будут блокироваться до тех пор, пока изображение не будет ретрибером. Это приведет к зависанию приложения при использовании плохого интернет-соединения, а если сеть слишком медленная, произойдет сбой вашего приложения. Изучите асинхронные загрузки и использование таких фреймворков, как AFNetworking.

+0

Спасибо за вашу доброту. я попробую. в моем представлении зрения условие if не так, потому что все фотографии читателей отображаются, но только noimages.jpg не отображается. – Livelines

+0

Это потому, что, когда условие истинно (если-ветвь), вы устанавливаете 'cellimages' в объект' UIImage'. Если берется else-ветвь, 'cellimages' содержит строку, которая корректно обрабатывается' NSURL', поэтому все остальные изображения отображаются правильно. Если бы вы установили 'cellimages' в строку в if-ветке (т. Е. Полный URL-адрес), она, вероятно, работала бы, но с использованием' cellimages' для обеих строк, строки URL (тип 'NSString') и изображения (типа 'UIImage') - очень * плохая практика. –

+0

Я пробовал как если ([[[[rssItems] objectAtIndex: indexPath.row] picture] == disable) но не используется. есть ли способ решить эту проблему. если вы знаете, пожалуйста, сообщите мне подсказку. потому что я новичок в этом поле. в основном я веб-дизайнер. теперь я выполнил все функции, кроме этого. Спасибо – Livelines

Смежные вопросы