簡體   English   中英

初始化NSMutableDictionary

[英]Initialize NSMutableDictionary

我正在開發一個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等效代碼,以及如何在字典中設置和獲取對。

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)];

等等

由於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"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM