ios 往可变字典添加object会覆盖到上一个key的值啊!!怎么解决!有代码~~

self.arr=[NSMutableArray new];
self.dic=[NSMutableDictionary new];
[self.arr addObjectsFromArray:@[@"1",@"2",@"3"]];
[self.dic setObject:self.arr forKey:@"key1"];

[self.arr removeAllObjects];
[self.arr addObjectsFromArray:@[@"3",@"4",@"5"]];
[self.dic setObject:self.arr forKey:@"key2"];

NSLog(@"%@",self.dic);



    输出结果:
    {
key1 =     (
    3,
    4,
    5
);
key2 =     (
    3,
    4,
    5
);

}

[self.arr removeAllObjects];
->
self.arr=[NSMutableArray new];

oc对象是引用类型的!肯定会跟着变!

_arr1 = [NSMutableArray new];
[self.arr1 addObjectsFromArray:@[@"3",@"4",@"5"]];

[_dic setValue:_arr1 forKey:@"key2"];
    这样不就行了

把数组深拷贝一下,然后添加到字典中,就可以了

你的字典里存的是同一个地址(对象)的数据(self.arr),所以只要self.arr内容改变,字典的内容就变

可以在第二次set的时候:执行 set:[self.arr copy]或者[self.arr mutableCopy];