我正在使用以下代码加载播放列表
-(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 但是当我查看播放列表时,很多都是空的。 我该怎么办?
答案 0 :(得分:1)
playlist.loaded == YES
只是意味着加载了播放列表自己的元数据 - 名称,所有者,项目数量等。项目本身单独加载,因此您需要单独使用SPAsyncLoading
加载它们。
请注意,一次加载播放列表的全部内容是一个非常糟糕的主意 - 播放列表会巨大,如果您尝试一次加载10,000个项目,那么事情就会变快iOS设备。
相反,您应该考虑在用户滚动UI时以块的形式加载项目。