编辑:如果您imgAlbum1
是IBOutlet
,您可能将其设置为 WEAK 属性。如果是这种情况,图像将永远不会出现。为了使用alloc
,您的属性必须是 STRONG 属性。
由于您可能使用的是弱插座,请尝试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 使用 WEAK 属性(即:
@property (nonatomic, weak) IBOutlet *imgAlbum1)
?如果是这样,请不要将其设置为强 - 而只是使用self.imgAlbum1.image = image;
- 您是否确保与您使用的设备有互联网连接?
- 是
imgAlbum1
一个IBOutlet
到一个UIImageView
?如果是这样,它是否被隐藏(或被一层隐藏)?
- 你在正确的视图控制器上吗?
等等
否则,代码似乎很好。