2015-06-23 6 views
7

Der Versuch, die ganze Strecke in Benutzer Playlist zu erhalten, funktioniert es in Objective-C Demo-Anwendung, aber wenn ich in Swift versuchen, es gibt diese:SPTPlaylistSnapshot tracksForPlayback nil

<SPTPlaylistList: 0x7fca22d72460>: 0-0 of 1 items (Function)

ich diesen Code bin mit:

SPTPlaylistList.playlistsForUserWithSession(session, callback: { (error, object) -> Void in 
      if error == nil { 
       var playlists = object as! SPTListPage 
       println(playlists) 
       SPTPlaylistSnapshot.playlistWithURI(playlists.items[0].uri, accessToken: session.accessToken, callback: { (error:NSError!, obj) -> Void in 
        var playl = obj as! SPTPlaylistSnapshot 
        println(playl.firstTrackPage.tracksForPlayback) 
       }) 
      } 

     }) 

und dies ist der Objective-C-Code, der funktioniert:

[SPTPlaylistList playlistsForUserWithSession:session callback:^(NSError *error, id object) { 
    SPTListPage *aa = object; 
    NSLog(@"%@",aa.items); 
    [SPTPlaylistSnapshot playlistWithURI:[NSURL URLWithString:@"spotify:user:spotifizr:playlist:3bpGFVfycGnhtcEVb95G98"] 
          accessToken:session.accessToken 
           callback:^(NSError *error, SPTPlaylistSnapshot *object) { 
            NSLog(@"tracks on page 1 = %@", [object.firstTrackPage tracksForPlayback]); 

           }]; 
}]; 

nicht sicher, warum esRückkehrim Swift-Projekt statt aller Spuren.

Edit: Versuchte

println(playl.firstTrackPage.tracksForPlayback()) 

aber jetzt gibt es null, obwohl ich 50 Titel in der Wiedergabeliste haben.

+0

Überprüfen Sie, ob 'playlists.items [0] .uri' es richtig sendet, ändern' (Fehler: NSError, obj) 'durch so etwas wie' (Fehler: NSError!, Obj: SPTPlaylistSnapshot) 'und ändere schließlich dieses' var play1: SPTPlaylistSnapshot = obj' und kommentiere uns. – eliasRuizHz

+2

@eliasRuizHz hat nicht funktioniert, wenn Sie etwas Freizeit haben, können Sie dieses Testprojekt versuchen ich habe https://github.com/spotify/ios-sdk/issues/377 – Ankit

Antwort

2

Sie benötigen eine oder beide der folgenden Aktionen in Ihren Wunsch-Bereichen schließen, wenn sie nicht bereits vorhanden sind: SPTAuthPlaylistReadScope und SPTAuthPlaylistReadPrivateScope Zugang zu einem, Benutzer öffentlicher und privaten Wiedergabelisten ermöglicht ist.

Siehe die Authentifizierung und Scopes Abschnitt https://github.com/spotify/ios-sdk

+0

Ich hatte [SPTAuthPlaylistModifyPublicScope, SPTAuthUserReadPrivateScope] und jetzt hinzugefügt [] SPTAuthPlaylistReadScore], gibt aber auf meinem schnellen Projekt immer noch nil zurück. nicht sicher warum – Ankit