2017-01-15 3 views
2

재생 목록에 노래 목록을 생성 된 순서대로 표시하고 싶습니다. 아래 코드는 내가 원하지 않는 알파벳순으로 목록을 반환합니다. 도움이 될지 사전에 미리 감사드립니다. Xcode 7.3.1을 사용하고 있습니다.iOS 및 Swift를 사용하여 재생 목록의 노래 목록을 자연 순서대로 가져 오는 방법

var qrySongs = MPMediaQuery() 
var selectedPlaylistTitle: String! // Set elsewhere in the code 
let predicateByPlaylistName = MPMediaPropertyPredicate(value: selectedPlaylistTitle, forProperty: MPMediaPlaylistPropertyName) 
qrySongs = MPMediaQuery.songsQuery() 
qrySongs.addFilterPredicate(predicateByPlaylistName) 
+0

나는 'MPMediaItemPropertyPersistentID'라고 생각합니다. – shallowThought

+0

도와 주셔서 감사합니다. 나는 어떻게 생각을 사용할 수 있을지 모르겠다. selectedPlaylistTitle을 알고 있습니다. 해당 재생 목록 제목의 PersistentID를 찾아 기존 MPMediaPropertyPredicate에서 사용할 수 있습니다. 그러나 결과가 다른 이유는 확실하지 않습니다. 마치 다른 방식으로 목록을 정렬해야하는 것과 같습니다. 재생 목록의 각 노래에는 PersistentID가 있지만 숫자로 정렬 할 수는 없습니다. 나는 현재 내가 알파벳 순으로리스트를 반환하고 있다는 것에 놀랐다. – James64

+0

나는 이것을 시도했다 : predicateByPlaylistPersistentID = MPMediaPropertyPredicate (값 : NSNumber (unsignedLongLong : selectedPlaylistPersistentID), forProperty : MPMediaItemPropertyPersistentID),하지만 작동하지 않았다. – James64

답변

2

문제가 해결되었습니다. 목록의 순서가 정확합니다. 그것은 쿼리 후 내 테이블을 채우는 방법과 관련이있었습니다. 다음을 포함하는 디버그 루프 : print (qrySongs.collections! [i] .items [0] .title)는 알파벳순 목록을 생성합니다. 다음을 포함하는 디버그 루프 : print (qrySongs.items! [0] .title) 올바른 재생 목록 순서로 목록을 생성합니다 (iTunes에 표시됨). 그것은 제 컬렉션입니다! 셀을 채울 때 목록에 알파벳이 표시됩니다. 나는 세포를 채우는 방법을 변화시켜야 할 것이다.