将播放列表移动到文件夹不起作用



我在将新创建的SPPlaylist移动到(可能是新创建的)SPPlaylistFolder时遇到问题。

这个想法是在用户的Spotify帐户中创建一个文件夹,在那里我可以添加应用程序生成的播放列表。如果还没有创建这样的文件夹,我将创建一个新的SPPlaylistFolder,并保存文件夹id以备将来使用。

这就是我正在做的(我省略了对这个主题不感兴趣的部分代码):

  1. 如果先前保存了folderId(即创建的文件夹),则使用该ID加载文件夹实例:

    ...
    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. 创建一个SPPlaylist:[[[SPSession sharedSession] userPlaylists] createPlaylistWithName:@"My Playlist"]

  3. 使用KVO观察容器的playlists属性,并在创建播放列表时得到通知:[[[SPSession sharedSession] userPlaylists] addObserver:self forKeyPath:@"playlists" options:0 context:nil]

  4. 观察playlists属性,并将创建的播放列表移动到我的SPPlaylistFoldercontainerPlaylist是我确定要移动的播放列表):

    ...
    // 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.
    }
    ...
    

经过这些步骤后,播放列表和文件夹都已创建,但播放列表尚未移动。并且我没有得到任何错误,表明对movePlaylistOrFolderAtIndex方法的任何无效输入。

我是不是遗漏了一些显而易见的东西?还是移动功能有缺陷?

注意:我还尝试使用此代码移动以前创建的播放列表(即将所有名为"我的播放列表"的播放列表移动到文件夹中)

第1版:我对此进行了进一步的研究,实际上已经进行了一些移动操作。但我不得不重写一些代码,并多次执行移动操作(或在稍后阶段)。这似乎与SPSession中的数据没有完全同步/最新有关(?),因为以后使用新会话登录时可以移动播放列表。

是否可能是同步问题,即libspotify认为SPPlaylistFolder已经创建,并将SPPlaylist移到它上面,而实际上还没有创建?

在cocalibspotify上参考这个问题更新了我的代码后,它的工作效果更好了。起初我没有意识到的是,与Spotify服务的同步是如何工作的。例如,Spotify桌面客户端很容易需要几分钟的时间才能反映出这些变化。

相关内容

  • 没有找到相关文章

最新更新