2013-07-13 2 views
0

Я создаю приложение IOS на основе cocoaLibSpotify.CocoaLibSpotify Создать плейлисты, заканчивающиеся

В какой-то момент я создаю плейлист Spotify из массива песен. Я ранее получил все Spotify URI, а затем создаю плейлист и добавляю все треки по одному.

Код приведен в логическом классе приложения, а затем у меня есть контроллер для отображения результатов. Проблема в том, что я вызываю эту логику с контроллера, но я не знаю, как вернуться, когда процесс добавления завершен. Я попытался реализовать делегата, но я не уверен, как это сделать ...

Каков правильный способ добавления треков в список воспроизведения? Я искал документацию и в репозитории GitHub, но я нашел только пример с двумя вложенными дополнениями треков ...: S

Заранее спасибо! (И простите за мой английский)

- (void) createPlaylist:(NSArray*)spotifyURIs withName:(NSString*)name { 

    int songsRead = 0; 
    [container createPlaylistWithName:name callback:^(SPPlaylist *createdPlaylist) { 

     [SPAsyncLoading waitUntilLoaded:createdPlaylist timeout:kSPAsyncLoadingDefaultTimeout then:^(NSArray *loadedPlaylist, NSArray *notLoadedPlaylist) { 

      for (int i=[spotifyURIs count]-1; i>=0; i--) { 

       NSString *trackURI = spotifyURIs[i]; 
       if (trackURI != nil){ 
        [[SPSession sharedSession] trackForURL:[NSURL URLWithString:trackURI] callback:^(SPTrack *track) { 
         if (track != nil) { 
          [createdPlaylist addItems:[NSArray arrayWithObject: track] atIndex:[[createdPlaylist items] count] callback:nil]; 
         } 
        }]; 
       } 

       songsRead++; 

       // If I have read the whole tracklist, end of the process, returning to controller... 
       if (songsRead == [spotifyURIs count]){ 
        // ... 
       } 
      } 
     }]; 
    }]; 
} 

ответ

2

Что вам нужно использовать систему КВО на новом списке воспроизведения или с помощью БЛОКОВ вы можете реализовать что-то вроде этого

ЬурейеГо пустотя (^ spotifycompletionWithData) (данные идентификаторов);

- (void) addTrack: (NSString *) trackURI withCompletionBlock: (spotifycompletionWithData) CompletionBlock;

тогда, когда вы вызываете функцию, вы должны вернуть загруженную SPTRACK в блоке завершения я надеюсь, что его помогает

+1

Спасибо Гилада, он работал для меня! –

+0

вы приветствуете помощника :) – Gilad

Смежные вопросы