Domanda

Sto avendo problemi di spostamento di una nuova SPPlaylist per un (forse appena creato) SPPlaylistFolder.

L'idea è di creare una cartella per l'utente di un account di Spotify, dove posso aggiungere la playlist generata dalla mia applicazione.Se tale cartella è stata creata, sto creando un nuovo SPPlaylistFolder e salvare la cartella di id per un uso successivo.

Questo è quello che sto facendo (ho omesso le parti di codice che non sono interessanti a questo argomento):

  1. Se un folderId è stato salvato in precedenza (es.una cartella creata), utilizzare l'ID di caricare la cartella di esempio:

    ...
    
    NSError *error = nil;
    if (folderId > 0) {
      // try to fetch folder
      folder = [[SPSession sharedSession] playlistFolderForFolderId:folderId inContainer:container];
    }
    
    if (folder == nil) {
      // create folder
      folder = [container createFolderWithName:@"My Folder" error:&error];
    
      // save a reference to the folder in an instance var
      _appFolder = [folder retain];
    
      // (also saving folder.folderId in NSUserDefaults)
    }
    
    ...
    
  2. Creare un SPPlaylist: [[[SPSession sharedSession] userPlaylists] createPlaylistWithName:@"My Playlist"].

  3. Utilizzare KVO osservare il contenitore playlists la struttura e ricevere la notifica di quando la playlist è stata creata: [[[SPSession sharedSession] userPlaylists] addObserver:self forKeyPath:@"playlists" options:0 context:nil].

  4. Osservare il playlists proprietà e spostare la playlist creata per il mio SPPlaylistFolder (containerPlaylist è la playlist che ho identificato come uno spostare):

    ...
    // identify the index of the containerPlaylist
    NSInteger playlistIndex = [[[[SPSession sharedSession] userPlaylists] playlists] indexOfObject:containerPlaylist];
    
    // move playlist
    NSError * error = nil;
    BOOL success = [container movePlaylistOrFolderAtIndex:playlistIndex ofParent:nil toIndex:0 ofNewParent:_appFolder error:&error];
    if (success) {
      // This should be a great success. But the playlist hasn't been moved, although the error variable is nil.
    }
    
    ...
    

Dopo questi passaggi, sia la playlist e la cartella sono stati creati, ma la playlist non è stato spostato.E non sto ottenendo eventuali errori che indica qualsiasi input non valido per il movePlaylistOrFolderAtIndex metodo.

Mi manca qualcosa di ovvio qui?O è la funzionalità di spostamento difettoso in qualche modo?

Nota:Ho anche provato ad usare questo codice per spostare le playlist che hai creato in precedenza (es.spostare tutte le playlist denominata "My Playlist" nella cartella).

EDIT 1: Ho studiato un po ' avanti e in realtà avuto qualche azione di movimento in corso.Ma ho dovuto riscrivere parte del codice ed eseguire la mossa più volte (o in una fase successiva).Sembra che questo è legato ai dati SPSession non essere completamente sincronizzate/up-to-date (?) poiché è possibile spostare playlist quando la registrazione in seguito con una nuova sessione.

È possibile che sia un problema di sincronizzazione, cioèlibspotify ritiene che il SPPlaylistFolder è creato e si muove SPPlaylists ad esso, senza che in realtà si fa ancora?

È stato utile?

Soluzione

Dopo aver aggiornato il mio codice con riferimento agli questo problema su cocoalibspotify, funziona meglio.Quello che non capisco è come la sincronizzazione con il servizio Spotify ha funzionato.Si può facilmente richiedere diversi minuti per le modifiche del client desktop di Spotify, per esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top