替换iPhone中的NSDictionary中的值

War*_*ior 28 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]
Run Code Online (Sandbox Code Playgroud)

上面的代码进入解析,所以我有5个对象(学生),他们的名字和标记的数组,现在我想替换dataArray中第一个对象的标记.

don*_*kim 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];
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


vod*_*ang 29

您首先需要一个NSMutableDictionary,您可以更改密钥和值.

它会是这样的:

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"david", @"name", "85", @"marks", nil];

[dict setObject:@"90" forKey:@"david"];
Run Code Online (Sandbox Code Playgroud)

  • 这是简单而且更好的答案 (3认同)

Tib*_*abo 10

如果要更新NSDictionary中的对象,则应使用NSMutableDictionary.NSMutableDictionary具有以下EXTRA方法

添加条目

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

删除条目

  • removeObjectForKey:
  • removeAllObjects
  • removeObjectsForKeys:


Zsi*_*nel 10

 // NSDictionary *dict = ...
    NSMutableDictionary *mutableDict = [dict mutableCopy];
    [mutableDict setObject:@"myObject" forKey:@"myKey"];
    dict = [mutableDict mutableCopy];
Run Code Online (Sandbox Code Playgroud)

我希望它有所帮助