当我在 iOS 中从 MPMediaItem
检索媒体信息,如 Artist
、Album
、歌曲标题时,但是有些歌曲没有艺术家姓名和专辑。
所以我得到了 NULL 的返回值
这是我的代码
MPMediaItem *currentItem = self.player.nowPlayingItem;
NSString *Artist = [currentItem valueForProperty:MPMediaItemPropertyArtist];
NSString *Title = [currentItem valueForProperty:MPMediaItemPropertyTitle];
NSString *Album = [currentItem valueForProperty:MPMediaItemPropertyAlbumTitle];
如果歌曲没有艺术家和专辑名称,则返回 NULL
值。
我想用 Unknown
值替换那个 NULL
值。
如何替换它?
感谢您的阅读。
最佳答案
如果你想要优雅,你可以像这样在MPMediaItem
中添加一个类别:
@implementation MPMediaItem (Readable)
- (id)readableValueForProperty:(NSString *)prop
{
id originalValue = [self valueForProperty:prop];
if (originalValue == nil) {
return @"Unknown";
}
return originalValue;
}
@end
然后你可以这样调用它:
NSString *artist = [currentItem readableValueForProperty:MPMediaItemPropertyArtist];
请注意,如果您获得的属性最初不是 NSString
,那么这是很危险的。不过,如果您仅使用字符串值进行操作,这应该没问题。
一种始终安全但可读性较差(且冗余较多)的方法是手动检查每个返回值:
NSString *artist = [currentItem valueForProperty:MPMediaItemPropertyArtist];
if (artist == nil) artist = @"Unknown";
关于ios - 如何在 iOS 中用 MediaItem 中的 Unknown 替换 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14295893/