【发布时间】:2011-11-20 11:14:15
【问题描述】:
以下代码用于对歌曲列表进行分区和添加部分。
query = [MPMediaQuery songsQuery];
[query addFilterPredicate: artistNamePredicate];
NSArray *itemsFromArtistQuery = [query items];
self.artist1 = [self partitionObjects:itemsFromArtistQuery collationStringSelector:@selector(title)];
完美运行。但是,当我尝试这样做时:
query = [MPMediaQuery albumsQuery]; //same with playlistsQuery, artistsQuery, genresQuery
[query addFilterPredicate: artistNamePredicate];
NSArray *itemsFromArtistQuery = [query collections];
self.artist1 = [self partitionObjects:itemsFromArtistQuery collationStringSelector:@selector(title)];
我每次都收到 SIGABRT 错误。我将其归因于代码的“集合”部分,因为这是整个代码块的唯一区别。我尝试将“标题”更改为“名称”、“专辑标题”、“播放列表”、“流派”等等,但最终还是得到:
"-[MPConcreteMediaItemCollection title]: unrecognized selector sent to instance"
有人可以帮我吗?我已经准备好扯掉我的头发了!
谢谢!
奔奔
【问题讨论】:
-
鉴于下面的答案,您如何处理有两首同名歌曲并且您分区的所有内容都是
NSStrings的数组(每行中您拥有的唯一信息/部分)? -
这个比较老了。这个问题已经得到了很好的解决,虽然我不明白你的问题?你的意思是我如何使用这种分区方法管理选择?
-
是的,例如,如果你要列出专辑集合,你如何处理有两个同名专辑(不同艺术家)的情况,你只有专辑可供参考名称存储在
NSStrings 的数组中? -
应该没什么区别。完全不影响我的应用程序。如果您需要更多帮助,请在 Twitter 上私信我 :) @cocotutch
-
sooper 只是谓词过滤专辑名称。
标签: ios ios4 mpmediaitem ios5 mpmediaquery