Problems with SPAsyncLoading waitUntilLoaded



我在使用 SPAsyncLoading 类加载播放列表时遇到问题。有时呼叫根本不返回,有时在很长时间后。

我使用以下代码从 url 加载播放列表:

NSString *playlistUrl = [Config instance].playlistUrl;
[SPPlaylist playlistWithPlaylistURL:[NSURL URLWithString:playlistUrl] inSession:[SPSession sharedSession] callback:^(SPPlaylist *pl) {
    playlist = pl;
    playlist.delegate = self;
    [SPAsyncLoading waitUntilLoaded:playlist then:^(NSArray *array) {
        NSLog(@"playlist loaded");
    }];
}];

我使用以下代码加载所有用户播放列表:

SPPlaylistContainer *userPlayLists = [[SPSession sharedSession] userPlaylists];
[SPAsyncLoading waitUntilLoaded:userPlayLists then:^(NSArray *result) {
    SPPlaylistContainer *userPlayLists = (SPPlaylistContainer*) [result objectAtIndex:0];
    [SPAsyncLoading waitUntilLoaded:userPlayLists.playlists then:^(NSArray *result) {
          NSLog(@"playlists loaded");
    }];
}];
在加载所有用户播放列表的情况下,有时会加载 0 个播放列表,

有时所有播放列表都可用,但最后一个等待直到加载不会返回。

我的代码有问题吗?

在这一行: [SPAsyncLoading waitUntilLoaded:userPlayLists.playlists then:^(NSArray *result) {

。将userPlayLists.playlists替换为 userPlayLists.flattenedPlaylists — 文件夹SPAsyncLoading不符合要求。

请注意,+[SPAsyncLoading waitUntilLoaded:then:]已从最新版本的CocoaLibSpotify中删除,只剩下+[SPAsyncLoading waitUntilLoaded:timeout:then:]。这是为了确保即使内容未加载,您也始终收到回调。

无法加载的可能原因:

  • 网络速度慢和/或已关闭。
  • 元数据服务速度较慢和/或关闭。
  • 播放列表服务速度很慢和/或关闭。

由于 Spotify 是一项互联网服务,因此您需要在加载元数据和播放列表时对问题做出响应。 +[SPAsyncLoading waitUntilLoaded:timeout:then:]通过为您提供已加载和尚未加载的内容的列表来帮助您,如果不是所有内容在发生超时时都已完成加载。

相关内容

  • 没有找到相关文章

最新更新