【问题标题】:Problems with SPAsyncLoading waitUntilLoadedSPAsyncLoading waitUntilLoaded 的问题
【发布时间】:2012-06-25 19:39:19
【问题描述】:

我在使用 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 个播放列表,有时所有播放列表都可用但最后一个 waitUntilLoaded 不会返回。

我的代码有问题吗?

【问题讨论】:

    标签: cocoalibspotify-2.0


    【解决方案1】:

    在这条线上:[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:] 在超时发生时为您提供已加载和未加载的内容列表(如果并非所有内容都已完成加载),可为您提供帮助。

    【讨论】:

    • 好的,所以当我测试应用程序时,播放列表服务可能变慢了。我今天再次测试它,它现在可以正常工作,无需修改代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多