【问题标题】:Sorting an array of songs by Album, when Album info available当专辑信息可用时,按专辑对歌曲数组进行排序
【发布时间】:2014-03-03 18:20:43
【问题描述】:

我正在用符合特定条件的歌曲填充数组。

  NSArray *songs = [[[MPMediaQuery alloc] init] items];
  NSMutableArray *filteredSongs;
  for (int i=0; i<[songs count]; i++) {
       // filter logic here: if songs[i] match the criteria, push it filteredSongs array

  }

现在我想按MPMediaItemPropertyAlbumTitle 对该数组进行排序,但如果缺少用户mp3 的专辑信息,可以避免出现问题。 (我正在尝试找到解决问题的解决方法here

【问题讨论】:

  • 嗯,有什么问题吗?如果缺少专辑信息,只需在排序前从数组中删除这些歌曲即可。
  • mmmm 不,我需要全部显示,如果信息存在则按专辑排序
  • 我没有说不要全部显示。我说排序没有缺少专辑信息的那些。然后把那些放回去。我不知道你认为它们会去哪里,或者你认为应该如何订购它们;您没有指定您的输入/所需的输出。我只是说这是微不足道的。
  • 看起来像@Jared 的答案,它正在工作:)
  • 如果它有效,请您选择它作为答案,以便以后搜索的人可以更轻松地找到它。

标签: ios iphone objective-c sorting mpmediaquery


【解决方案1】:

您可以使用NSComparisonResult 按专辑标题排序。这应该处理 nil albumTitle 值并将它们推到后面。

[songs sortUsingComparator:^NSComparisonResult(id obj1, id obj2){
return [[obj2 albumTitle] compare:[obj1 albumTitle]];
}];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多