수색…


몹시 떠들어 대다

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

또는

NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", nil];
NSArray *objects = [NSArray arrayWithObjects:@"value1", @"value2", nil];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects 
                                                       forKeys:keys];

또는 적절한 리터럴 구문 사용

NSDictionary *dict = @{@"key": @"value", @"nextKey": @"nextValue"};

NSArray를 NSArray로

NSDictionary *myDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];  
NSArray *copiedArray = myDictionary.copy; 

키 가져 오기 :

NSArray *keys = [myDictionary allKeys];

값 가져 오기 :

NSArray *values = [myDictionary allValues];

NSDictionary를 NSData로 변환

NSDictionary *myDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];  
NSData *myData = [NSKeyedArchiver archivedDataWithRootObject:myDictionary];

경로 예약 :

NSDictionary *myDictionary = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithData:myData];

NSDictionary - JSON

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

NSMutableDictionary *mutableDictionary = [myDictionary mutableCopy];
NSData *data = [NSJSONSerialization dataWithJSONObject:myDictionary options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

블록 기반 열거

사전을 열거하면 enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))block 메서드를 사용하여 각 사전 키 - 값 쌍에 대한 코드 블록을 실행할 수 있습니다 enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))block

예:

NSDictionary stockSymbolsDictionary = @{
                                         @"AAPL": @"Apple",
                                         @"GOOGL": @"Alphabet",
                                         @"MSFT": @"Microsoft",
                                         @"AMZN": @"Amazon"
                                       };
NSLog(@"Printing contents of dictionary via enumeration");
[stockSymbolsDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    NSLog(@"Key: %@, Value: %@", key, obj);
}];

빠른 열거

NSDictionary 는 다른 컬렉션 유형과 마찬가지로 빠른 열거 형을 사용하여 열거 할 수 있습니다.

NSDictionary stockSymbolsDictionary = @{
                                     @"AAPL": @"Apple",
                                     @"GOOGL": @"Alphabet",
                                     @"MSFT": @"Microsoft",
                                     @"AMZN": @"Amazon"
                                   };

for (id key in stockSymbolsDictionary)
{
    id value = dictionary[key];
    NSLog(@"Key: %@, Value: %@", key, value);
}

NSDictionary 는 기본적으로 순서가 지정되지 않으므로 for 루프에있는 키의 순서는 보장되지 않습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow