2014-02-05 2 views
0

나는, 구성에 따라 arrray를 정렬의 학생 이름정렬 다른 구성의 배열에 따라 배열

[NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"abc",@"name", nil],[NSDictionary dictionaryWithObjectsAndKeys:@"efg",@"name", nil][NSDictionary dictionaryWithObjectsAndKeys:@"cde",@"name", nil], nil]; 

을 가지고 학생의 일부 데이터를 가지고 있는데이 정렬 방법을 말하는 다른 배열이 있다고 가정해야 그 말처럼 배열은 처음에는 efg 다음에 abc가되어야합니다.

nsssortdescriptor를 사용하면 가능합니까? 아니면 사용자 정의 코드를 작성해야합니까?

답변

1

나는 당신이 당신의 비교 논리를 지정할 수 있도록 블록을 사용

NSArray *sortedArray = [_helpItems sortedArrayUsingComparator:^NSComparisonResult(id a, id b) { 
    return [(MAHelpItem *)a order] > [(MAHelpItem *)b order]; 
}]; 
self.items = sortedArray; 
0

는 아마도 이것은 당신이 찾고있는 무엇 :

NSArray *students; 
    NSArray *sortPriorities; 
    NSMutableArray *sortDescriptors = @[].mutableCopy; 
    for (NSString *key in sortPriorities) { 
    [sortDescriptors addObject:[NSSortDescriptor sortDescriptorWithKey:key ascending:YES]]; 
    } 
    NSArray *sortedStudents = [students sortedArrayUsingDescriptors:sortDescriptors]; 
관련 문제