2014-10-29 2 views
1

전체 배열을 정렬하기 전에 배열의 부분 정렬을하고 싶습니다. 다음은 "있는 sortOrder"에 정렬 된 배열을 반환합니다sortedArrayUsingDescriptors를 사용한 부분 정렬

[folders sortedArrayUsingDescriptors:@[NSSortDescriptor sortDescriptorWithKey:@"sortOrder" ascending:YES]] 
배열은 다음과 같이됩니다

: 나는 "이름"을 정렬하고 싶은

하지만 [X, A, Z, W, Y] 「sortOrder」가 최초로 제로의 경우는 승순으로됩니다.

그래서 최종 배열은 다음과 같이 보일 것이다 : [A, X, Z, W, Y]

사람이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

"folders": [ 
    { 
     "sortOrder": 0, 
     "name": "x", 
    }, 
    { 
     "sortOrder": 0, 
     "name": "a", 
    }, 
    { 
     "sortOrder": 1, 
     "name": "z", 
    }, 
    { 
     "sortOrder": 3, 
     "name": "y", 
    }, 
    { 
     "sortOrder": 2, 
     "name": "w", 
    } 
] 

답변

0

패스 두 가지의 종류의 설명, "있는 sortOrder"하나와 "이름"에 대한 두 번째 :이 설정으로

NSArray *descriptors = @[ 
    [NSSortDescriptor sortDescriptorWithKey:@"sortOrder" ascending:YES], 
    [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES], 
]; 

NSArray *sortedArray = [folders sortedArrayUsingDescriptors:descriptors]; 

, 동일한 정렬 순서로 두 항목은 다음에 의해 정렬됩니다 이름.

+0

감사합니다. –