根据Playcount对MPMediaQuery进行排序

时间:2012-05-05 06:50:40

标签: iphone objective-c cocoa-touch

自从过去一小时以来,我一直在尝试这样做。我不确定问题是什么。 这是我的代码:

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]; 
}];

2 个答案:

答案 0 :(得分:1)

试试这个,

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

答案 1 :(得分:0)

我刚试过你的代码,它运行得很好。

sortedArray根据播放次数按升序排序。

也许你的iPod上有一个巨大的iTunes资料库?也许你已经激活了iTunes Match并且手机上没有所有数据?