已加载播放列表的属性为YES,但playlist.items中包含空项

时间:2013-11-20 14:29:45

标签: spotify cocoalibspotify-2.0 libspotify

我正在使用以下代码加载播放列表

-(void)loadPlaylist:(NSString *)playlistURI withCompletionBlock:(spotifycompletionWithData)completionBlock andfailed:(failedBlock)failedBlock {

    NSURL *playlistURL = [NSURL URLWithString:playlistURI];
    [[SPSession sharedSession] playlistForURL:playlistURL callback:^(SPPlaylist *playlist) {

    [SPAsyncLoading waitUntilLoaded:playlist timeout:kSPAsyncLoadingDefaultTimeout+10 then:^(NSArray *loadedItems, NSArray *notLoadedItems) {

       if(notLoadedItems.count >= 1){

           [SVProgressHUD dismiss];
           failedBlock();
           return;
       }
       self.playlist = [loadedItems lastObject];
   }];
 }];
}

我正在观察playlist.loaded属性,我看到它是YES 但是当我查看播放列表时,很多都是空的。 我该怎么办?

1 个答案:

答案 0 :(得分:1)

playlist.loaded == YES只是意味着加载了播放列表自己的元数据 - 名称,所有者,项目数量等。项目本身单独加载,因此您需要单独使用SPAsyncLoading加载它们。

请注意,一次加载播放列表的全部内容是一个非常糟糕的主意 - 播放列表会巨大,如果您尝试一次加载10,000个项目,那么事情就会变快iOS设备。

相反,您应该考虑在用户滚动UI时以块的形式加载项目。