有时,尝试在cocoalibspotify中“加注星标”时会遇到致命异常。我正在使用一个具有大量数据集的用户登录(数百个播放列表,但
这就是我如何为SPTrack
加上星号的方法:
[[[[SPSession sharedSession] starredPlaylist] items] addObject:myTrack];
...以及堆栈跟踪:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSArray objectsAtIndexes:]: index 12 beyond bounds [0 .. 11]'
*** Call stack at first throw:
(
0 CoreFoundation 0x01e125a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x021a1313 objc_exception_throw + 44
2 CoreFoundation 0x01da0f99 -[NSArray objectsAtIndexes:] + 633
3 Foundation 0x016a250b -[NSKeyValueArray objectsAtIndexes:] + 110
4 Foundation 0x016aaca6 NSKeyValueDidChangeByArrayMutation + 103
5 Foundation 0x01610c30 NSKeyValueDidChange + 266
6 Foundation 0x016aba95 -[NSObject(NSKeyValueObserverNotification) didChange:valuesAtIndexes:forKey:] + 123
7 Foundation 0x016a4d0e -[NSKeyValueNotifyingMutableArray addObject:] + 239
8 MyApp 0x000922cd -[PlaylistManager starTrack:] + 285
...
这似乎只是在登录后的一两分钟内发生(即加载了用户数据),所以我猜测这可能是数据未完全加载或其他问题?
我试图找出是否有要观察的属性,以便找出何时全部加载完毕。但是由于数组可能是空的(并且用户之前可能没有加星标),因此似乎没有验证所有内容已加载的好方法……?
loaded
的SPPlaylist
属性似乎是指播放列表元数据,而不是其曲目(?)。有任何想法吗?
最佳答案
您正在获得So看来您不应该直接操作该数组。而是调用[myTrack setStarred:YES];
基本上,我只是遍历了整个Spotify API,供您查找答案。
关于ios - 将轨道添加到已加星标的播放列表时,NSArray异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9523497/