2013-06-16 5 views
0

я не могу понять, почему я не могу установить uimageview из URL из приведенного ниже примера:Невозможно установить UIImage в UIImageView из Url?

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://a4.mzstatic.com/us/r30/Music/08/e9/14/mzi.lmcnwrii.60x60-50.jpg"]]; 
UIImage *image = [UIImage imageWithData:data]; 

self.imgAlbum1 = [[UIImageView alloc] initWithImage:image]; 

он отлично работает при просмотре изображения, IBOutlet нормально, даже установка UIImage из imagenamed не работает

я попытался воссоздать Contorl в раскадровке, но ничего ...

любые советы приветствуются

+0

Вы пробовали распечатать «данные» после первого звонка? – paulmelnikow

+0

Да, nsdata печатает отлично – RollRoll

ответ

2

imgAlbum1 Предположительно это выход к существующему мнению изображения.

Вместо этого последней строки, которая пытается создать новый вид изображения без отображения его в любом месте, вы, вероятно, хотите:

self.imgAlbum1.image = image; 
+0

не уверен, что происходит, я даже не могу настроить другие элементы управления прагматично, как названия uibutton. программирование 17 часов прямо не уверен, если я пропустил что-то очевидное ... Я попытаюсь создать новый диспетчер представлений и повторю попытку. Я пробовал это раньше, кстати, не работал ни – RollRoll

+0

Я создал совершенно новый проект, и теперь он работает отлично, спасибо – RollRoll

1

Edit: Если ваш imgAlbum1 является IBOutlet, вы, вероятно, установить его в качестве слабого имущество. Если это так, изображение никогда не появится. Чтобы использовать alloc, ваша собственность должна быть СИЛЬНОЙ.

Поскольку вы, вероятно, используете WEAK-розетку, попробуйте использовать self.imgAlbum1 в качестве предлагаемого другого плаката. Причина, по которой это будет работать, заключается в том, что вы просто обновляете изображение, а не фактический объект imageView (слабые свойства, когда вы перераспределяете, по сути уничтожат объект полностью).

Это то, что я сделал, который я проверил и работает просто отлично:

NSString *encodedString = [[NSString stringWithFormat:@"%@", @"us/r30/Music/08/e9/14/mzi.lmcnwrii.60x60-50.jpg"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

NSURL *imageURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://a4.mzstatic.com/%@", encodedString]]; 

NSData *data = [NSData dataWithContentsOfURL:imageURL]; 
UIImage *image = [[UIImage alloc] initWithData:data]; 

UIImageView *imgAlbum1 = [[UIImageView alloc] initWithImage:image]; 
[self.view addSubview:imgAlbum1]; 

Таким образом, вопросы для меня являются:

  • Вы используете Слабое свойство для imgAlbum1 (то есть: @property (nonatomic, weak) IBOutlet *imgAlbum1)? Если да, не устанавливайте его на сильное - скорее, просто используйте self.imgAlbum1.image = image;
  • У вас есть подключение к Интернету с устройством, которое вы используете?
  • Есть imgAlbum1 a IBOutlet до UIImageView? Если да, то он скрыт (или скрыт слоем)?
  • Вы на правильном контроллере?

т.д.

В противном случае код кажется нормально.

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