2016-10-20 4 views
3

나는 두 종류의 대상을 가진 배열을 가지고있다 : 수상 및 비 수상. 수여 된 객체가 먼저 배치되고 나머지는 나중에 배치되도록 배열을 정렬하기 만하면됩니다. 내가 처음으로 사람들을 업적을 정렬 및 추가 "수상"내 미개봉 값을 사용하려면 그 괄호 안에키를 기반으로 배열을 정렬하는 방법은 무엇입니까?

if let awarded = achievements[indexPath.row].userRelation["awarded"] as? String where awarded != "<null>" { } 

:

여기에 "수상"키를 정의하는 코드입니다 나머지는 끝입니다.

어떻게해야할까요?

+0

정확히 '업적'은 무엇입니까? 'userRelation' 사전을 포함하는 객체입니까? ? 이상한 엔티티 모델의 종류 :/ – alexburtnik

+0

네, 그 중 하나는 "수여"키가있는 userRelation입니다. –

+0

var descriptor = NSSortDescriptor (키 : "수여 됨", 오름차순 : false) var stories = (성취도 NSArray) .sortedArray (usingDescriptors : [descriptor]) –

답변

2

당신은 sort 기능으로 실험해야한다, 그것은 아주 유용하다. 내가 모델을 리팩토링하는 것이 좋습니다

achievements.sort{ $0.userRelation["awarded"] < $1.userRelation["awarded"] } 

:

let sortedAchievements = achievements.sorted{ $0.userRelation["awarded"] < $1.userRelation["awarded"] } 

장소 사용이으로 정렬합니다. 사전 대신 개체 나 구조체를 사용하는 것이 좋습니다. awarded도 속성이어야하며 String이 아니시겠습니까?

관련 문제