2013-07-13 6 views
0

나는 cocoaLibSpotify를 기반으로 IOS 응용 프로그램을 만들고 있습니다.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

당신이 필요로하는 것은이

형식 정의의 무효 같은 것을 구현할 수 새로운 재생 목록이나 블록을 사용하여에 KVO 시스템을 사용하는 것입니다 (^ spotifycompletionWithData) (ID 데이터);

- (void) addTrack : (NSString *) trackURI withCompletionBlock : (spotifycompletionWithData) CompletionBlock; 함수를 호출 할 때마다

은 당신은 나를 위해 일한, 내가

+1

당신에게 길 라드 감사의 돕는 희망 완료 블록 내에서로드 SPTRACK를 반환해야합니다! –

+0

당신은 친구를 환영합니다 :) – Gilad

관련 문제