2015-04-06 2 views
0

Привет, я использую следующий код для удаления объектов из NSMutableDictionary, оба словаря содержат одинаковые значения массива, если я удаляю значение из D1, то такое же значение автоматически удаляется из D2. Помоги мне, как решить эту проблему,NSMutableDictionary Удаляет одинаковые значения из другого массива

NSMutableDictionary *D1=[[NSMutableDictionary alloc]init]; 
NSMutableDictionary *D2=[[NSMutableDictionary alloc]init]; 

NSMutableArray *arr_objs = [[NSMutableArray alloc]initWithObjects:@"ss",@"nn", nil]; 

[D1 setObject:arr_objs forKey:@"Keys"]; 
[D2 setObject:arr_objs forKey:@"Keys"]; 

[[D1 objectForKey:@"Keys"]removeObject:@"nn"]; 
+0

'[[D1 objectForKey: @" Keys "] removeObject: @" nn "]; D2 = [D1 mutableCopy]; ' –

ответ

1

arr_objs является тот же массив в двух словарях. Это

NSMutableArray *arr_objs = [[NSMutableArray alloc]initWithObjects:@"ss",@"nn", nil]; 
NSMutableArray *arr_objsCopy = [arr_objs mutableCopy]; 

[D1 setObject:arr_objs forKey:@"Keys"]; 
[D2 setObject:arr_objsCopy forKey:@"Keys"]; 

должно предоставить вам то, что вы ищете. Вместо того, чтобы хранить один и тот же массив в двух словарях, этот пример создает два идентичных массива, которые впоследствии могут быть изменены без ущерба для друг друга.

+0

спасибо, что это работает :) –

Смежные вопросы