본문 바로가기

Objective-C 기초

NSDictionary

반응형

NSDictionary


딕셔너리는 키(key)값(value)으로 구성됨.


구별의 척도이므로 각 값은 유일해야함. value 값은 같아도 됨.


값은 id타입으로 들어가므로 배열도 줄 수 있음.


딕셔너리 생성 방법 2가지 예시.


1)

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKey:@"value", @"key", @"value2", @"key2", nil];

이렇게 값, 키, 값, 키로 생성 (순서에 유의)


2)

좀 더 편하게 생성해보자.

NSDictionary *dic2 = @{@"key":@"value", @"key2":@"value2"};

훨씬 간편하고 헷갈리지도 않음.


딕셔너리 개수 확인. (키&값이 한 세트가 1개임)

-(NSUInteger)count;


찾기

-(id)objectForKey:(id)Key;

혹은

배열처럼 첨자 표기법도 가능.


ex)

#import <Foundation/Foundation.h>


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2", nil];

        NSDictionary *dic2 = @{@"key":@"value", @"key2":@"value2"};

        

        NSLog(@"search for method %@", [dic objectForKey:@"key2"]);

        NSLog(@"첨자 표기법 테스트 %@", dic2[@"key2"]);

    }

    return 0;

}

==> 결과 :

2019-02-15 13:49:32.378636+0900 Study[1723:394085] search for method value2

2019-02-15 13:49:32.379572+0900 Study[1723:394085] 첨자 표기법 테스트 value2

Program ended with exit code: 0


모든 키, 모든 객체 얻기

-(NSArray *)allKeys;

-(NSArray *)allValues;



NSMutableDictionary

생성

+(id)dictionaryWithCapacity:(NSUInteger)numItems;

-(id)initWithCapacity:(NSUInteger)numItems;


추가 (키가 중복된다면 덮어쓰임)

-(void)setObject:(id)anObjectForKey:(id)Key;


삭제

-(void)removeObjectForKey:(id)Key;


ex)

#import <Foundation/Foundation.h>


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        NSMutableDictionary *dic = [NSMutableDictionary dictionary]; //메소드로 할당.

        [dic setObject:@"value1" forKey:@"key1"];

        [dic setObject:@"value2" forKey:@"key2"];

        

        NSLog(@"mutableDic check : %@", dic);

    }

    return 0;

}


==> 결과 :

2019-02-15 13:38:52.992087+0900 Study[1660:389229] mutableDic check : {

    key1 = value1;

    key2 = value2;

}

Program ended with exit code: 0


반응형

'Objective-C 기초' 카테고리의 다른 글

콜렉션 특징  (0) 2019.02.15
NSSet  (0) 2019.02.15
가변형 배열(MutableArray)  (0) 2019.02.15
배열(Array)  (0) 2019.02.15
가변 문자열  (0) 2019.02.14