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 |