在For循环中使用NSDictionary时,请特别指向键或对象

时间:2012-11-13 18:02:50

标签: objective-c for-loop nsdictionary nsmutabledictionary

让人困惑解释:我正在尝试通过NSMutableDictionary迭代for循环,查看其“关键”值,并将它们与第二个NSMutableDictionary的“key”值进行比较。如果匹配(它们是字符串比较),我希望将两个字典的“对象”添加到单独的数组中。

为了澄清,字典A和B都包含单词(对象)列表和按字母顺序排列的单词(键),如下所示:

apple = aelpp 番茄= amoott stack = ackst

所以我需要将“aelpp”与“amoott”进行比较,然后存储“apple”和“tomato”。

基本问题是:使用for循环(for (NSString *currentWord in dictionaryA))时,如何具体引用dictionaryA的对象或键?我需要它来比较键,但是如果它们匹配则存储对象。

如果有任何需要澄清的话,请问:)

2 个答案:

答案 0 :(得分:0)

回答“基本问题”:快速枚举NSDictionary枚举词典

for (NSString *keyA in dictionaryA) {
    NSString *valueA = [dictionaryA objectForKey:keyA];
    // Now keyA : valueA is one key-value pair of dictionaryA ...
}

(假设所有键和值都是字符串)。

答案 1 :(得分:0)

如果您想同时在Key和Values之间同时进行迭代,请使用:

[dictionaryA enumerateKeysAndObjectsUsingBlock:^(NSString * keyA,
                                                   id valueA,
                                                   BOOL *stop) {
    // You have at the same time access to keyA and valueA
}];