2013-10-13 21 views
-2

我有一个可变数组是这样的:NSMutableArray的更换项目

[0] { 
name => "Mark" 
surname => "Smith" } 
[1] { 
name => "John" 
surname => "Mayer" } 
[2] { 
name => "Bob" 
surname => "Moltz" } 
[3] { 
name => "Rick" 
surname => "Wayne" } 
... 

我想要什么,并没有得到它,是寻找姓氏和取代它时,我发现Moltz。

我搜索了很多,但无法得到答案。似乎我只能使用objectAtIndex或valueForKey,但我需要使用它们两个。

我会感激一点帮助。谢谢。

+0

所以阵列的每个位置存储一个字典?或者是一个字段名称和姓氏的对象? – ssantos

+0

那么你只需循环访问数组元素,并在键的值与谓词匹配时替换该对象。 – 2013-10-13 17:31:18

+2

替换什么?整个字典(或对象)/只是姓氏?所有实例? – Wain

回答

1

迭代数组和检查一个特定键

使用的NSMutableDictionary迭代

for (NSMutableDictionary *dict in mutableArray) { 
     NSString *value = [obj objectForKey:@"surname"]; 
     if ([value isEqualToString:@"Moltz"]) { 
      [dict setObject:@"My new surname" forKey:value]; 
     } 
    } 

使用KVC

for (NSObject *obj in mutableArray) { 
    NSString *value = [obj valueForKey:@"surname"]; 
    if ([value isEqualToString:@"Moltz"]) { 
     [obj setValue:@"My new surname" forKey:value]; 
    } 
} 
+0

OP没有指定嵌套字典是可变的还是不可变的。 – jlehr

+0

好点。更改了使用KVC的答案 –

+0

@WilliamFalcon我认为OP可能从看到您的原始答案和新的答案中获益。 –