我有一个NSDictionary“item”的数组(dataArray)。对于5名学生,它具有关键“名称”的“david”和关键“标记”等的“85”等数据。我想将david的标记替换为数组索引值的90(即0表示包含david和85的字典)。我该怎么办?
数组中内容的代码是
[item setobject:name forkey:@"Name"];
[item setobject:mark forkey:@"Marks"];
[dataArray addOject:item]
上面的代码进入解析,所以我有5个对象(学生),他们的名字和标记的数组,现在我想替换dataArray中第一个对象的标记。
答案 0 :(得分:72)
以下是您可以做的事情:
NSMutableDictionary *newDict = [[NSMutableDictionary alloc] init];
NSDictionary *oldDict = (NSDictionary *)[dataArray objectAtIndex:0];
[newDict addEntriesFromDictionary:oldDict];
[newDict setObject:@"Don" forKey:@"Name"];
[dataArray replaceObjectAtIndex:0 withObject:newDict];
[newDict release];
希望这有帮助!
答案 1 :(得分:28)
您首先需要一个NSMutableDictionary,您可以更改密钥和值。
就像这样:
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"david", @"name", "85", @"marks", nil];
[dict setObject:@"90" forKey:@"david"];
答案 2 :(得分:10)
如果要更新NSDictionary中的对象,则应使用 NSMutableDictionary 。 NSMutableDictionary具有以下EXTRA方法
添加条目
删除条目
答案 3 :(得分:10)
// NSDictionary *dict = ...
NSMutableDictionary *mutableDict = [dict mutableCopy];
[mutableDict setObject:@"myObject" forKey:@"myKey"];
dict = [mutableDict mutableCopy];
我希望它有所帮助
答案 4 :(得分:1)
[davidsRecord setObject:@"100" forkey:@"mark"];