替换 iPhone 中 NSDictionary 中的值
Posted
技术标签:
【中文标题】替换 iPhone 中 NSDictionary 中的值【英文标题】:Replace a value in NSDictionary in iPhone 【发布时间】:2010-12-21 16:14:39 【问题描述】:我有一个 NSDictionary "item" 的数组 (dataArray)。它有 5 名学生的关键“姓名”和关键“标记”等的“大卫”数据和“85”等数据。我想将 david 的标记替换为相对于数组索引值的 90(即包含 david 和 85 的字典的 0)。我该怎么做?
数组内容的代码是
[item setobject:name forkey:@"Name"];
[item setobject:mark forkey:@"Marks"];
[dataArray addOject:item]
上面的代码在解析中,所以我有 5 个对象(学生)的数组,他们的名字和标记,现在我想替换 dataArray 中第一个对象的标记。
【问题讨论】:
【参考方案1】:您可以这样做:
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];
希望这会有所帮助!
【讨论】:
将 objectForIndex 更改为 objectAtIndex。谢谢【参考方案2】:你首先需要一个 NSMutableDictionary ,你可以改变它的键和值。
应该是这样的:
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"david", @"name", "85", @"marks", nil];
[dict setObject:@"90" forKey:@"david"];
【讨论】:
我以大卫为例,我在解析后得到这些值,那么如何将该值作为静态值? 这是一个简单而更好的答案【参考方案3】: // NSDictionary *dict = ...
NSMutableDictionary *mutableDict = [dict mutableCopy];
[mutableDict setObject:@"myObject" forKey:@"myKey"];
dict = [mutableDict mutableCopy];
希望对你有帮助
【讨论】:
【参考方案4】:如果你想更新 NSDictionary 中的对象,你应该改用 NSMutableDictionary。 NSMutableDictionary 有以下 EXTRA 方法
添加条目
setObject:forKey: setValue:forKey: addEntriesFromDictionary: 设置字典:删除条目
removeObjectForKey: 删除所有对象 removeObjectsForKeys:【讨论】:
【参考方案5】:[davidsRecord setObject:@"100" forkey:@"mark"];
【讨论】:
以上是关于替换 iPhone 中 NSDictionary 中的值的主要内容,如果未能解决你的问题,请参考以下文章
NSDictionary 可以与 iPhone 上的 TableView 一起使用吗?