본문 바로가기
프로그래밍/Xcode-iOS

iOS NSMutableArray sortedArray 예제.

by Mr-후 2019. 9. 25.
반응형

iOS NSMutableArray sortedArray 예제.


익숙한 예제이다. 

오늘 너무 바쁘다. 블로그 포스팅을 할 여력이 없는 관계로 빈약하지만 유용한 함수 하나 투척하고 퇴근 준비해야겠다. 

보통 서버로부터 받은 JSON을 Objective-C구조로 객체화를 해서 사용하는 편인데, 리스트 형태로 받은 값을  ASC/DESC 정렬을 하는 기능이 있을 때 유용하게 사용할 수 있는 함수다. 


- (NSMutableArray*)sortInfoList:(NSArray*)arr order:(BOOL)asc{

    if (arr == nil || arr.count == 0)

        return nil;

    

    __weak __typeof(self)weakSelf = self;

    NSArray *sortedArray = [arr sortedArrayUsingComparator:^NSComparisonResult(ListItem *p1, ListItem *p2){

        NSString    *key    =   [NSString stringWithFormat:@"%ld",(long)weakSelf.selectedIndex+1];

        NSArray     *arr1   =   p1.grade;

        NSArray     *arr2   =   p2.grade;

        NSDictionary    *dics1  =   [arr1 objectAtIndex:weakSelf.selectedIndex];

        NSDictionary    *dics2  =   [arr2 objectAtIndex:weakSelf.selectedIndex];

        NSString    *obj1   =   [dics1 objectForKey:key];

        NSString    *obj2   =   [dics2 objectForKey:key];

        

        if ([obj1 floatValue] > [obj2 floatValue]){

            if(asc)     return NSOrderedDescending;

            else        return NSOrderedAscending;

        }

        else if ([obj1 floatValue] < [obj2 floatValue]){

            if(asc)   return NSOrderedAscending;

            else        return NSOrderedDescending;

        }

        return NSOrderedSame;

    }];

    return [NSMutableArray arrayWithArray:sortedArray];

}



반응형