336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.



안녕하세요. 개발자 myoung입니다.

NSMutableDictionary, NSDictionary을 사용 할때 키값을 이용해서 필요한 값을 꺼내서 사용하는데, 전체 키값을 정렬해야 하는 상황이 있습니다.

그때 딕셔너리의 전체 키값을 가지고 와서 내림차순 또는 오름차순으로 정렬해주는  방법입니다.


(Obejctive-C)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
NSMutableDictionary * dic = [[NSMutableDictionary alloc]init];
[dic setObject:@"2" forKey:@"key2"];
[dic setObject:@"1" forKey:@"key1"];
[dic setObject:@"4" forKey:@"key4"];
[dic setObject:@"3" forKey:@"key3"];
    
//오름차순
NSArray * arr_ascending = [dic keysSortedByValueUsingComparator: ^(id obj1, id obj2) {
    if ([obj1 integerValue] > [obj2 integerValue]) {
        return (NSComparisonResult)NSOrderedDescending;
    }
    if ([obj1 integerValue] < [obj2 integerValue]) {
        return (NSComparisonResult)NSOrderedAscending;
    }
    return (NSComparisonResult)NSOrderedSame;
}];
NSLog(@"%@", arr_ascending);
    
//내림 차순
NSArray * arr_descending = [dic keysSortedByValueUsingComparator: ^(id obj1, id obj2) {
    if ([obj1 integerValue] < [obj2 integerValue]) {
        return (NSComparisonResult)NSOrderedDescending;
    }
    if ([obj1 integerValue] > [obj2 integerValue]) {
        return (NSComparisonResult)NSOrderedAscending;
    }
    return (NSComparisonResult)NSOrderedSame;
}];
NSLog(@"%@", arr_descending);
cs



(Swift)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let dic = NSMutableDictionary()
        dic.setObject("2", forKey: "key2")
        dic.setObject("1", forKey: "key1")
        dic.setObject("4", forKey: "key4")
        dic.setObject("3", forKey: "key3")
        
print(dic)
        
let arr_key = dic.allKeys.sort {
    //오름차순
    //$0.compare($1 as! String, options: .NumericSearch) == .OrderedAscending
    
    //내림차순
    $0.compare($1 as! String, options: .NumericSearch) == .OrderedDescending
}
 
print(arr_key)
cs




'iOS 프로그래밍 > iOS' 카테고리의 다른 글

iOS)사진첩에 사진 저장하기  (0) 2016.06.12
iOS)디바이스 정보 가져오기  (0) 2016.06.08
iOS)랜덤 함수  (0) 2016.05.26
iOS)TTS(Text-to-Speech) 사용하기.  (0) 2016.05.19
iOS)iPhone 해상도  (0) 2016.05.09

+ Recent posts