我有一个名为artworkImage
的UIImage:
- (UIImage *) getAlbumArtworkWithSize: (CGSize) albumSize
{
MPMediaQuery *albumQuery = [MPMediaQuery albumsQuery];
MPMediaPropertyPredicate *albumPredicate = [MPMediaPropertyPredicate predicateWithValue: albumTitle forProperty: MPMediaItemPropertyAlbumTitle];
[albumQuery addFilterPredicate:albumPredicate];
NSArray *albumTracks = [albumQuery items];
for (int i = 0; i < [albumTracks count]; i++) {
MPMediaItem *mediaItem = [albumTracks objectAtIndex:i];
UIImage *artworkImage;
MPMediaItemArtwork *artwork = [mediaItem valueForProperty: MPMediaItemPropertyArtwork];
artworkImage = [artwork imageWithSize: CGSizeMake (1, 1)];
if (artworkImage) {
artworkImage = [artwork imageWithSize:albumSize];
return artworkImage;
}
}
return [UIImage imageNamed:@"Songs.png"];
}
我有一个UIImageView(@property (weak, nonatomic) IBOutlet UIImageView *albumArtworkImageView;
)我想显示这个artworkImage。
但是,当我在[self.albumArtworkImageView setImage:artworkImage];
中添加viewDidLoad
时,会出现错误,说我还没有声明artworkImage。
我要从一个VC中的UITableView专辑到这个albumDetailViewController。当导航栏标题正常工作时,它会正确推送,显示专辑标题 - self.title = albumTitle = [self.mediaItem valueForProperty:MPMediaItemPropertyAlbumTitle];
。
我跟着this tutorial获取了专辑封面(我不使用故事板)。
如果这是一个愚蠢的问题我道歉,但有人可以解释我做错了什么以及如何解决它?
非常感谢任何帮助,谢谢。
答案 0 :(得分:1)
显然,问题是没有声明名为artworkImage
的变量。您不必声明artworkImage
,您可以按如下方式调用您的方法
[self.albumArtworkImageView setImage:[self getAlbumArtworkWithSize:CGSizeMake(WIDTH,HEIGHT)]];
这次调用getAlbumArtworkWithSize
,返回的值将用作setImage
方法的参数。