【问题标题】:Replace a value in NSDictionary in iPhone替换 iPhone 中 NSDictionary 中的值
【发布时间】: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 中第一个对象的标记。

【问题讨论】:

    标签: iphone nsdictionary


    【解决方案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"];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-09-25
          • 1970-01-01
          • 2012-12-03
          • 2011-12-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-13
          相关资源
          最近更新 更多