Свойство загруженного списка воспроизведения равно YES, но playlist.items содержит нулевые элементы внутри

Я использую следующий код для загрузки плейлиста

-(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, но когда я просматриваю playlist.items, многие из них пусты. Что я могу сделать?


person Gilad    schedule 20.11.2013    source источник


Ответы (1)


playlist.loaded == YES просто означает, что загружаются собственные метаданные плейлиста - имя, владелец, количество элементов и т. д. Сами элементы загружаются отдельно, поэтому вам нужно отдельно использовать SPAsyncLoading для их загрузки.

Обратите внимание, что загружать все содержимое плейлиста сразу — довольно плохая идея — плейлисты становятся огромными, и если вы попытаетесь загрузить 10 000 элементов одновременно, на устройстве iOS все быстро испортится.

Вместо этого вам следует подумать о загрузке элементов частями, когда пользователь прокручивает ваш пользовательский интерфейс.

person iKenndac    schedule 20.11.2013
comment
что вы подразумеваете под ожиданием дольше, я должен задержать пользовательский интерфейс? - person Gilad; 20.11.2013
comment
Эта часть моего ответа была немного запутанной - я удалил ее. - person iKenndac; 20.11.2013
comment
насколько я понял от вас, как только я загрузил плейлист, используя KVO в загруженном свойстве, этого недостаточно, я должен пойти и SPA-синхронизировать загрузку каждой дорожки в плейлисте? или я что-то пропустил? - person Gilad; 21.11.2013