Inicialice NSMutableDictionary

Estoy desarrollando una aplicación de iOS en la que quiero usar un NSMutableDictionary . Básicamente, lo que estoy haciendo es convertir el código java en objectiveC.

Entonces en Java tengo algo como esto:

 Map<String, ClassA> dict1 = new HashMap<>(); Map<Integer,Character> dict2 = new HashMap<>(); Map<Integer, Map<String,String>> dict3 = new HashMap<>(); 

¿Puede alguien guiarme como lo que sería el código equivalente Obj-C para las tres líneas anteriores utilizando NSMutableDictionary y también cómo puedo configurar y get los pares en / desde los dictionarys.

Las classs de recostackción de Objective-C no se escriben con fuerza para que se creen los tres dictionarys usando:

 NSMutableDictionary *dictX = [NSMutableDictionary new]; 

Para rellenar el dictionary, use [NSMutableDictionary setObject:forKey:] :

 [dict1 setObject:classAInstance forKey:@"key1"]; [dict2 setObject:[NSString stringWithFormat:@"%c", character] forKey:@(1)]; [dict3 setObject:@{ @"innerKey" : @"innerValue" } forKey:@(2)]; 

etc

Dado que el Objetivo C no tiene types generics, todo lo que tiene que escribir es este:

 NSMutableDictionary *dict1 = [[NSMutableDictionary alloc] init]; NSMutableDictionary *dict2 = [[NSMutableDictionary alloc] init]; NSMutableDictionary *dict3 = [[NSMutableDictionary alloc] init]; 

Hay un par de maneras de get y establecer valores. La forma taquigráfica se parece mucho a las matrices de acceso. Para establecer un valor con taquigrafía:

 dict1[@"key"] = @"value"; 

Para get un valor con taquigrafía:

 NSString *value = dict1[@"key"]; 

Más syntax detallada es así:

 [dict1 setObject:@"value" forKey:@"key"]; NSString *value = [dict1 valueForKey:@"key"];