我在我的应用程序的表格视图中显示Spotify曲目的列表,并且想要下载这些曲目属于的相册的封面艺术。从Spotify下载封面艺术URL并进行键值观察
我登录到CocoaLibSpotify,我可以播放所有曲目,所以这部分是好的。我似乎无法工作的是封面艺术的下载。我遵循SimplePlayer项目的代码,除了将SPTrack实例存储在可变字典(tracksDownladingForCoverArt)中外,因为可能会有许多曲目下载封面艺术。
所以,这是我做的:
[[SPSession sharedSession] trackForURL:nativeSpotifyURL callback:^(SPTrack *track) {
if (track != nil) {
[track addObserver:self forKeyPath:@"album.cover.spotifyURL" options:0 context:NULL];
self.tracksDownloadingForCoverArt[nativeSpotifyURL] = track;
[SPAsyncLoading waitUntilLoaded:track timeout:kSPAsyncLoadingDefaultTimeout then:^(NSArray *tracks, NSArray *notLoadedTracks) {
if ([tracks count] > 0) {
// I don't believe I need to do anything here
}
}];
}
}];
的observeValueForKeyPath:ofObject变化:背景:被调用一次,与零的新旧价值,但在此之后,没事。但是,如果我按照SimplePlayer处理该字母(即,使用self.currentTrack而不是字典)并注册关键路径@“self.currentTrack.album.cover.spotifyURL”,则observerValue ...方法将被调用两次,一次与零和一次具有实际价值。
我错过了什么?哦,我注册了spotifyURL而不是图像,所以我可以缓存图像。这样,当用户退出应用程序并稍后返回时,并非所有图像都必须重新加载。
'valueForKey'应该是'valueForKeyPath' – vaughan
album.cover的数据类型是什么? –
当我检索没有专辑封面的曲目时,出现错误。我怎么能抓住这个?错误是[NSNull isLoaded]。 –