2014-07-20 6 views
0

아이팟에서 모든 사용자의 재생 목록을 가져 와서 재생 목록의 ID로 정렬하려고합니다.아이디 재생 목록을 ID별로 정렬하기

MPMediaQuery *allPlaylistsQuery = [MPMediaQuery playlistsQuery]; 
NSArray *allPlaylists = [allPlaylistsQuery collections]; 
NSArray *sortedPlaylists = [allPlaylists sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:MPMediaPlaylistPropertyPersistentID ascending:YES]]]; 

하지만 예외를 얻을 :
이것은 내가 지금까지 한 일이다

'[<MPConcreteMediaPlaylist 0x14f38590> valueForUndefinedKey:]: this class is not key value coding-compliant for the key playlistPersistentID.' 

그래서 뭐죠 가장 쉬운 (그리고 efficiet) 이유를 할 수있는 그런 종류의?

답변

0

MPMediaItemvalueForKey:이 아닌 KMQ 규격 값을 쿼리하는 데 valueForProperty: 메서드를 사용하므로 KVC를 준수하게됩니다. 왜 도움이되지 않는가 valueForKey:은 클래스에 훨씬 더 유용 할 것이므로 약간의 수수께끼 일 수 있습니다. 예를 들어 질문에 제공 한 코드가 도움이 될 것 같습니다. 테스트되지 않은

: 그 수는 이미 id로 정렬 된 재생 목록을 가져올 경우 답장을 보내

MPMediaQuery *allPlaylistsQuery = [MPMediaQuery playlistsQuery]; 
NSArray *allPlaylists = [allPlaylistsQuery collections]; 
NSArray *sorted = [allPlaylists sortedArrayUsingComparator:^(id obj1, id obj2) { 
    NSNumber *id1 = [(MPMediaItem *)obj1 valueForProperty:MPMediaItemPropertyPersistentID]; 
    NSNumber *id2 = [(MPMediaItem *)obj2 valueForProperty:MPMediaItemPropertyPersistentID]; 
    return [id1 compare:id2]; 
}]; 
+0

덕분에, 당신은 아마 알 수 있습니까? – Mario

+0

@Mario 죄송합니다. 저는 그 API를 사용한 적이 없습니다. – trojanfoe