2

MPMediaItemCollectionユーザーNSArrayのライブラリにあるすべてのアーティストを取得したいと考えています。これが私の現在のコードです(明らかに機能しません):

- (void)viewDidLoad
{
    [super viewDidLoad];
    MPMediaQuery *artistsQuery = [MPMediaQuery artistsQuery];
    self.artistsArray = artistsQuery.collections;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.artistsArray.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ArtistsCell"];
    cell.textLabel.text = [(MPMediaItemCollection *)self.artistsArray[indexPath.row]   valueForProperty:MPMediaPlaylistPropertyName];
    NSLog(@"%@", cell.textLabel.text);
    return cell;
}
4

1 に答える 1

6

アーティストのリストについては、メディア アイテムのプロパティ キーではMPMediaItemPropertyArtistなく使用します。MPMediaPlaylistPropertyName

データ ソースは を使用しているMPMediaItemCollectionため、representativeItemプロパティを使用して各コレクションのアーティスト タイトル文字列を取得します。

次に、textLabelのテキストをアーティスト文字列に設定します。

MPMediaItemCollection *artistCollection = self.artistsArray[indexPath.row];
NSString *artistTitle = [[artistCollection representativeItem] valueForProperty:MPMediaItemPropertyArtist];
cell.textLabel.text = artistTitle;
于 2013-02-06T20:30:40.413 に答える