0

私は音楽アプリを構築しており、次のコードで 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"])

ここで何が欠けているのかわかりません。

4

1 に答える 1