我正在开发一个 iOS 应用程序,我想在其中使用NSMutableDictionary
。基本上我正在做的是将java代码转换为objectiveC。
所以在java中我有这样的东西:
Map<String, ClassA> dict1 = new HashMap<>();
Map<Integer,Character> dict2 = new HashMap<>();
Map<Integer, Map<String,String>> dict3 = new HashMap<>();
有人可以指导我使用NSMutableDictionary
作为上述三行的Obj-C等效代码,以及如何在字典中设置和获取对。
答案 0 :(得分:12)
Objective-C集合类不是强类型的,因此所有三个字典都将使用:
创建NSMutableDictionary *dictX = [NSMutableDictionary new];
为了填充字典,请使用[NSMutableDictionary setObject:forKey:]
:
[dict1 setObject:classAInstance
forKey:@"key1"];
[dict2 setObject:[NSString stringWithFormat:@"%c", character]
forKey:@(1)];
[dict3 setObject:@{ @"innerKey" : @"innerValue" }
forKey:@(2)];
等
答案 1 :(得分:9)
由于Objective C没有泛型类型,所以你需要输入的是:
NSMutableDictionary *dict1 = [[NSMutableDictionary alloc] init];
NSMutableDictionary *dict2 = [[NSMutableDictionary alloc] init];
NSMutableDictionary *dict3 = [[NSMutableDictionary alloc] init];
有几种获取和设定价值的方法。简写形式很像访问数组。 用速记设置值:
dict1[@"key"] = @"value";
用速记来获取值:
NSString *value = dict1[@"key"];
更详细的语法是这样的:
[dict1 setObject:@"value" forKey:@"key"];
NSString *value = [dict1 valueForKey:@"key"];