编辑:如果您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?如果是这样,它是否被隐藏(或被一层隐藏)?
- 你在正确的视图控制器上吗?
等等
否则,代码似乎很好。