将字符串附加到NSMutableDictionary中的NSMutableArray

时间:2012-04-18 15:38:00

标签: ios nsmutablearray nsmutabledictionary

每当一个单词与另一个单词的模式匹配时,我需要将字符串附加到保存在字典内的数组中。下面的第二行(setObject)将覆盖而不是附加 最终结果应该是字典中的数组,其中键(模式)标识符合该模式的许多字符串。

    NSMutableDictionary *eqClasses = [[NSMutableDictionary alloc] init];
    [eqClasses setObject:tempWordStr forKey:wordPattern];

是否有一种简单的追加方式?

2 个答案:

答案 0 :(得分:1)

试试这个:

NSMutableArray* array = [eqClasses objectForKey:wordPattern];
if(!array) {
  // create new array and add to dictionary if wordPattern not found
  array = [NSMutableArray array];
  [eqClasses setObject:array forKey:wordPattern];
}
[array addObject:tempWordStr];

答案 1 :(得分:0)

您指出字典中的值应该是数组,但在我看来,eqClasses包含NSStrings(tempWordStr)。您是否需要创建一个NSArray来保存与关键字关联的NSStrings,然后使该数组成为字典中与该关键字对应的值?如果字典已包含密钥,则需要检索与密钥关联的数组,将新字符串添加到数组,然后使用带有密钥的数组调用setObject。