每当一个单词与另一个单词的模式匹配时,我需要将字符串附加到保存在字典内的数组中。下面的第二行(setObject)将覆盖而不是附加 最终结果应该是字典中的数组,其中键(模式)标识符合该模式的许多字符串。
NSMutableDictionary *eqClasses = [[NSMutableDictionary alloc] init];
[eqClasses setObject:tempWordStr forKey:wordPattern];
是否有一种简单的追加方式?
答案 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。