Ios6 专辑艺术品和代表性项目

Ios6 专辑艺术品和代表性项目,ios6,Ios6,如果相册艺术不存在,我尝试放置一个占位符图像。由于某些原因,representativeItem中的图像从不为空,因此它只是分配一个空白的艺术品 MPMediaItemArtwork *artwork = [[mediaListItem representativeItem] valueForProperty:MPMediaItemPropertyArtwork]; if (artwork) { sModel.albumImage = [artwork imageWi

如果相册艺术不存在,我尝试放置一个占位符图像。由于某些原因,representativeItem中的图像从不为空,因此它只是分配一个空白的艺术品

MPMediaItemArtwork *artwork = [[mediaListItem representativeItem] valueForProperty:MPMediaItemPropertyArtwork];

    if (artwork) {
         sModel.albumImage = [artwork imageWithSize: CGSizeMake (10, 10)];
    } else {
        sModel.albumImage = [UIImage imageNamed:@"Default_.png"]; //never enters
    }

找到了解决方案,我是个天才;)


因此,如果指向artwork的
指针==0,则声明
if(artwork)
应输入
else
端?你的代码的意图可能比这更清楚。如果艺术品存在,那么它会设置相册图像。否则它会设置一个默认图像,我不知道如何才能让您更清楚。我想说的是,
else
无法执行的最可能原因是,
if
中的条件是错误的。看起来你正在检查
artwork
是否为零,但是如果你没有
artwork
参考,谁知道指针上是什么。啊,我明白了。文档没有指定返回值的任何细节,所以我想在看到这个方法在找不到合适的artwork时返回的结果之前,我会一直坚持下去。我不是ios6专家,但因为看起来你总是能从这个调用中得到一个
MPMediaItemArtwork
对象,您必须检查,看看是否有什么东西可以用来检测图像的缺失。
MPMediaItemArtwork *artwork = [[mediaListItem representativeItem] valueForProperty:MPMediaItemPropertyArtwork];

//If artwork has no size set place holder
if (CGSizeEqualToSize(artwork.bounds.size, CGSizeZero))
{
   sModel.albumImage = [UIImage imageNamed:DEFAULT_IMG];
}
else //Otherwise set the artwork found in the library. 
{
   sModel.albumImage = [artwork imageWithSize: CGSizeMake (SIZE_X, SIZE_Y)];
}