我正在构建一个音乐应用程序,我正在尝试使用这段代码获取 MP3 文件元数据:
for (NSString *format in [assest availableMetadataFormats]) {
for (AVMetadataItem *item in [assest metadataForFormat:format]) {
if ([[item commonKey] isEqualToString:@"title"]) {
[SongNameMutableArray addObject:[NSString stringWithFormat:@"%@",[item value]]];
}
if ([[item commonKey] isEqualToString:@"artist"]) {
[ArtistMutableArray addObject:[NSString stringWithFormat:@"%@",[item value]]];
}
if ([[item commonKey] isEqualToString:@"albumName"]) {
}
if ([[item commonKey] isEqualToString:@"artwork"]) {
UIImage *img = nil;
if(floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_7_1) {
img = [UIImage imageWithData:item.dataValue];
}
else {
NSDictionary *dict ;
[item.value copyWithZone:nil];
img = [UIImage imageWithData:[dict objectForKey:@"data"]];
}
}
}
}
代码工作正常。唯一的问题是,当可变数组被填充时,它们以下列方式进行:
- SongNameMutableArray => [song1, song2, song3, songX];
- ArtistMutableArray => [Artists1, Artist3, Artist 10, ArtistX];
因为并非所有歌曲的元数据中都有艺术家。
根据代码的这个特定部分
if ([[item commonKey] isEqualToString:@"artist"]) {
[ArtistMutableArray addObject:[NSString stringWithFormat:@"%@",[item value]]];
}
如果找到的项目是艺术家,则将其插入数组中。
现在我的问题是如何检测一首歌曲何时在元数据中没有艺术家?这样我就可以在 ArtistMutableArray => [Artists1, null, Artist3, null, Artist 5, ArtistX] 中插入“null”;
我试过:
if ([[item commonKey] isEqualToString:@"null"])
if ([[item value] isEqualToString:@"null"])
我不确定我在这里缺少什么。