2012-05-05 114 views
0

自过去一小时以来,我一直在努力做到这一点。我不确定问题是什么。 这里是我的代码:根据Playcount对MPMediaQuery进行排序

NSArray *allTracks = [[[MPMediaQuery alloc] init] items] ;  
NSArray *sortedArray; 
sortedArray = [allTracks sortedArrayUsingComparator:^(id a, id b) { 
    NSNumber *first = [(MPMediaItem*)a valueForProperty:MPMediaItemPropertyPlayCount]; 
    NSNumber *second = [(MPMediaItem*)b valueForProperty:MPMediaItemPropertyPlayCount]; 
    return [first compare:second]; 
}]; 
+0

你能提供一个错误信息? – Klaas

回答

0

我刚刚试过你的代码,它的工作原理很好。

sortedArray按照播放次数升序排列。

也许你的iPod上有一个巨大的iTunes资料库?也许你已经启动了iTunes Match,而不是所有的数据都在你的手机上?

+0

我排序10000首歌曲需要大约11秒。我也使用iTunes Match。 – yujean

1

试试这个,

NSSortDescriptor *sorter = [NSSortDescriptor sortDescriptorWithKey:MPMediaItemPropertyPlayCount ascending:NO]; 
NSArray *sortedArray = [allTracks sortedArrayUsingDescriptors:@[sorter]]; 
相关问题