从iOS媒体库中获取所有艺术家的列表

时间:2013-01-27 14:23:18

标签: ios mpmusicplayercontroller mpmediaitemcollection

我希望获取用户图书馆中所有艺术家的MPMediaItemCollectionNSArray。这是我当前的代码(显然不起作用):

- (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;
}

1 个答案:

答案 0 :(得分:6)

对于艺术家列表,请使用MPMediaItemPropertyArtist而不是MPMediaPlaylistPropertyName作为媒体项属性键。

由于您的数据源使用MPMediaItemCollection,请使用representativeItem属性获取每个集合的艺术家标题字符串。

然后将textLabel的文字设置为艺术家字符串。

MPMediaItemCollection *artistCollection = self.artistsArray[indexPath.row];
NSString *artistTitle = [[artistCollection representativeItem] valueForProperty:MPMediaItemPropertyArtist];
cell.textLabel.text = artistTitle;