투케이2K

133. (Objective-C/objc) Array 배열에 포함 된 Dictionary 딕셔너리 특정 key 값 기준으로 정렬 (sort) 실시 본문

Objective-C

133. (Objective-C/objc) Array 배열에 포함 된 Dictionary 딕셔너리 특정 key 값 기준으로 정렬 (sort) 실시

투케이2K 2022. 11. 6. 13:23
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[소스 코드]

// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
- (void)testMain {
    printf("\n");
    printf("==================================== \n");
    printf("[ViewController >> testMain() :: 테스트 메소드 수행] \n");
    printf("==================================== \n");
    printf("\n");

    
    // [try catch 구문 정의 실시]
    @try {
        
        dispatch_async(dispatch_get_main_queue(), ^{
            
            // [배열 선언 실시]
            NSMutableArray *originArray = [[NSMutableArray alloc] init];
            
            
            // [딕셔너리 선언 실시]
            NSMutableDictionary *dic_1 = [[NSMutableDictionary alloc] init];
            [dic_1 setObject:@"TK" forKey:@"name"];
            [dic_1 setObject:@29 forKey:@"age"];
            
            NSMutableDictionary *dic_2 = [[NSMutableDictionary alloc] init];
            [dic_2 setObject:@"TWOK" forKey:@"name"];
            [dic_2 setObject:@30 forKey:@"age"];
            
            
            NSMutableDictionary *dic_3 = [[NSMutableDictionary alloc] init];
            [dic_3 setObject:@"2K" forKey:@"name"];
            [dic_3 setObject:@28 forKey:@"age"];
            
            
            // [배열에 딕셔너리 추가]
            [originArray addObject:dic_1];
            [originArray addObject:dic_2];
            [originArray addObject:dic_3];
            
            
            // [특정 딕셔너리 key 값으로 정렬 실시]
            NSSortDescriptor *sorter = [[NSSortDescriptor alloc] initWithKey:@"age" ascending:true];
            NSArray *copyArray = [originArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sorter]];


            // [로그 출력 실시]
            printf("\n");
            printf("==================================== \n");
            printf("[ViewController >> testMain() :: 원본 데이터 출력] \n");
            printf("[originArray :: %s] \n", originArray.description.UTF8String);
            printf("[copyArray :: %s] \n", copyArray.description.UTF8String);
            printf("==================================== \n");
            printf("\n");

        });

    }
    @catch (NSException *exception) {
        printf("\n");
        printf("==================================== \n");
        printf("[ViewController >> catch :: 예외 상황 확인] \n");
        printf("[name :: %s] \n", exception.name.description.UTF8String);
        printf("[reason :: %s] \n", exception.reason.description.UTF8String);
        printf("==================================== \n");
        printf("\n");
    }
}
 

[결과 출력]


반응형
Comments