2013-10-13 61 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可能從看到您的原始答案和新的答案中獲益。 –