私は音楽アプリを構築しており、次のコードで 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 => [アーティスト1、アーティスト3、アーティスト10、アーティストX];
すべての曲のメタデータにアーティストが含まれているわけではないためです。
コードのこの特定の部分によると
if ([[item commonKey] isEqualToString:@"artist"]) {
[ArtistMutableArray addObject:[NSString stringWithFormat:@"%@",[item value]]];
}
見つかったアイテムがアーティストの場合は、それを配列に挿入します。
私の質問は、曲のメタデータにアーティストが含まれていないことを検出する方法です。ArtistMutableArray に「null」を挿入できるように => [Artists1, null, Artist3, null, Artist 5, ArtistX];
私は試しました:
if ([[item commonKey] isEqualToString:@"null"])
if ([[item value] isEqualToString:@"null"])
ここで何が欠けているのかわかりません。