2012-05-05 115 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]]; 
相關問題