替换iPhone中的NSDictionary中的值

时间:2010-12-21 16:14:39

标签: iphone nsdictionary

我有一个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中第一个对象的标记。

5 个答案:

答案 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方法

添加条目

  • 的setObject:forKey:
  • 的setValue:forKey:
  • addEntriesFromDictionary:
  • setDictionary:

删除条目

  • removeObjectForKey:
  • removeAllObjects
  • removeObjectsForKeys:

答案 3 :(得分:10)

 // NSDictionary *dict = ...
    NSMutableDictionary *mutableDict = [dict mutableCopy];
    [mutableDict setObject:@"myObject" forKey:@"myKey"];
    dict = [mutableDict mutableCopy];

我希望它有所帮助

答案 4 :(得分:1)

[davidsRecord setObject:@"100" forkey:@"mark"];