0
我正在使用cocoalibspotify进行Spotify iOS应用。SPPlaylistCallbackProxy播放列表:发送到已释放实例的消息
在我的应用程序的一个点上,我创建了一个新的播放列表并向播放列表中添加了一些曲目。当这样做时,由于创建的播放列表实例似乎已被释放,因此我发生了崩溃。
这是代码的样子:
[[[SPSession sharedSession] userPlaylists]
createPlaylistWithName:playlistName
callback:^(SPPlaylist *createdPlaylist) {
if (createdPlaylist) {
[SPAsyncLoading waitUntilLoaded:createdPlaylist
then:^(NSArray *playlists) {
// Load all tracks using the URI's and add them to the playlist
SPPlaylist *playlist = [playlists objectAtIndex:0];
for (NSString *trackUri in trackUris) {
[[SPSession sharedSession]
trackForURL:[NSURL URLWithString:trackUri]
callback:^(SPTrack *track) {
if (track != nil) {
[SPAsyncLoading
waitUntilLoaded:track
then:^(NSArray *tracks) {
[playlist addItems:tracks atIndex:0 callback:NULL];
}];
}
}];
}
}];
}}];
这是日志消息:
*** -[SPPlaylistCallbackProxy playlist]: message sent to deallocated instance 0x100e0120
我试图保留在我的课的播放列表,但我仍然得到同样的问题。我在这里错过了很明显的东西吗
奖励问题:创建播放列表或载入曲目后(即使用-trackForURL:callback
),我必须使用SPAsyncLoading
,还是始终已加载对象?
(注:我在我的项目中使用ARC)
编辑:我跑了僵尸工具,看看发生了什么事情,得到了以下结果时坠毁:
解决https://github.com/spotify/cocoalibspotify/issues/80。 – 2012-08-09 12:48:11