0

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

-(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 属性,我看到它是的,但是当我查看 playlist.items 时,它们中的很多都是空的。我能做些什么?

4

1 回答 1

1

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

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

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

于 2013-11-20T14:38:19.627 回答