ios - 当专辑信息可用时,按专辑对歌曲数组进行排序

标签 ios iphone objective-c sorting mpmediaquery

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

  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 )

最佳答案

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

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

关于ios - 当专辑信息可用时,按专辑对歌曲数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21609105/

相关文章:

iphone - 无法在 tableviewcell ios 7 上显示删除按钮

ios - UICollectionView 在插入或删除很多项目时非常慢

ios - 以编程方式检测 iOS 设备是否受到监督?

ios - 当我的应用程序从图库返回时,它具有导航栏的标准颜色

objective-c - 我可以在 Objective-C 中序列化数组并在反序列化时使其所有值保持不变吗?

objective-c - Objective-C快速枚举和异步服务器操作。模型帮助?

iphone - 构建时的InfoPlist.strings问题

iphone - 我可以根据另一个单元格的状态显示/隐藏 UITableView 中的某个单元格吗?

ios - 当打开由 Xcode 4.6 制作的 Storyboard时,Xcode 5 崩溃

iOS 启动事件指示器只有 1 行