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
? Если да, то он скрыт (или скрыт слоем)?
- Вы на правильном контроллере?
т.д.
В противном случае код кажется нормально.
Вы пробовали распечатать «данные» после первого звонка? – paulmelnikow
Да, nsdata печатает отлично – RollRoll