PlayListをフォルダに移動することはできません
質問
新しく作成されたSPPlaylist
を(おそらく新しく作成された)SPPlaylistFolder
に移動しています。
アイデアは、私のアプリケーションから生成されたプレイリストを追加することができるユーザーのSpotifyアカウントにフォルダを作成することです。そのようなフォルダが作成されていない場合は、新しいSPPlaylistFolder
を作成し、後で使用するためにフォルダIDを保存します。
これは私がやっていることです(私はこの主題にとって興味深いコードの一部を省略しました):
-
以前に保存された場合(すなわち、フォルダ作成されたフォルダ)、その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) } ...
-
folderId
:SPPlaylist
を作成します。 -
KVOを使用してコンテナの
[[[SPSession sharedSession] userPlaylists] createPlaylistWithName:@"My Playlist"]
プロパティを守り、プレイリストが作成されたときに通知されます.playlists
。 -
[[[SPSession sharedSession] userPlaylists] addObserver:self forKeyPath:@"playlists" options:0 context:nil]
プロパティを監視し、作成したプレイリストをMyplaylists
に移動します(SPPlaylistFolder
は、移動するものとして識別されたプレイリストです):... // 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. } ...
次の手順の後、PlayListとフォルダの両方が作成されましたが、プレイリストは移動されていません。そして、
containerPlaylist
メソッドへの無効な入力を示すエラーが発生しません。ここでは明白なものがありませんか?それとも、どういうわけか欠陥のある移動機能は?
注:このコードを使用して、以前に作成されたプレイリストを移動しようとしました(すなわち、「マイプレイリスト」という名前のすべてのプレイリストをフォルダに移動)。
編集1:私はこれをさらに少し調査し、実際にはいくらかの動きの行動が起こった。しかし、私はコードのいくつかを書き直さなければならず、数回(または後期の段階で)移動を実行する必要がありました。これは、後で新しいセッションでログに記録されたときにプレイリストを移動することが可能であるため、これは完全に同期されていない/最新のデータに関するデータに関連しているようです。
同期の問題であることは可能です。これは、
movePlaylistOrFolderAtIndex
が作成され、それを実際に作成されていないことがありますか?
解決
CocoAlibSpotify のこの問題は、よりよく機能しています。。最初は実現しなかったことは、Spotifyサービスとの同期がどのように機能していましたかでした。たとえば、Spotify Desktopクライアントに変更が反映されるまで簡単に数分かかることがあります。