如何从iOS中的iPod库中检索播放列表?

时间:2012-12-27 10:11:08

标签: ios cocoa-touch uitableview

我正在尝试在iOS中使用MPMediaQuery从iPod库中检索播放列表。 我希望在UITableView中展示。

以下是viewDidLoad中的代码。

MPMediaQuery *myQuery = [[MPMediaQuery alloc] init];
[myQuery setGroupingType: MPMediaGroupingPlaylist];
arrayOfPlaylist = [myQuery collections];

并在UITableViewCell方法

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    for(int i=0;i<self.arrayOfPlaylist.count;i++)
    {
        dic = [self.arrayOfPlaylist objectAtIndex:0];
        cell.textLabel.font = [UIFont systemFontOfSize:10];
        cell.textLabel.text = [NSString stringWithFormat:@"%@",[self.arrayOfPlaylist objectAtIndex:indexPath.row]];
    }

    return cell;

在我编写上述代码后,在我的UITableView中,我只收到以下消息:

<MPConcreteMediaPlaylist : 0x1e51afd0>

我不知道那是什么以及如何将播放列表名称转换为String。 当我使用NSLog方法测试时,我的播放列表计数是正确的。

但我只在UITableView中收到了上述消息并且没有播放列表名称。

我只是iOS的初学者。

请帮我在UITableView显示播放列表。

2 个答案:

答案 0 :(得分:9)

可以像这样探索播放列表:

MPMediaQuery *myQuery = [[MPMediaQuery alloc] init];

arrayOfPlaylist = [myQuery collections];

for (MPMediaPlaylist *playlist in arrayOfPlaylist) {
    NSLog (@"Playlist :%@", [playlist valueForProperty: MPMediaPlaylistPropertyName]);
    NSArray *songs = [playlist items];
    for (MPMediaItem *song in songs) {
        NSString *strSongTitle =
            [song valueForProperty: MPMediaItemPropertyTitle];
        NSLog (@"Title : %@", strSongTitle);
    }
}

答案 1 :(得分:3)

我对自己的问题得到了答案。

就是这样。

MPMediaQuery *query = [MPMediaQuery playlistsQuery]; 
NSArray *playlists = [query collections];

for(int i = 0; i < [playlists count]; i++) 
{
NSLog(@"Playlist : %@", [[playlists objectAtIndex:i] valueForProperty: MPMediaPlaylistPropertyName]);
}