字典作为值 - 用当前值覆盖 NSMutableDictionary 的所有其他先前值

Dictionary as value - Overwriting all other previous values of NSMutableDictionary with the current value

我想知道我们是否可以将值设置为字典的字典。

我正在尝试将值设置为字典,但是当我为当前键设置值时,所有以前的键也都设置为这个值。

[self.mainDict setValue:self.buttonDict forKey:[NSString stringWithFormat:@"%d",device.deviceID]];

这是我两次迭代得到的结果:

第一

main Dict {
    2 =     {
        1 =         (
            "object1",
            "object2"
        );
    };
}

第二

main Dict {
    2 =     {
        1 =         (
            "object3",
            "object4"
        );
    };
    3 =     {
        1 =         (
            "object3",
            "object4"
        );
    };
}

字典应该可以接受任何类型的值吧?我怀疑问题出在其他地方

据我所知,您正在为不同的键设置 self.buttonDict 的值。 为该键存储 self.buttonDict 的引用。

当您更改 self.buttonDict 值时,所有指向该对象的指针都会更新。这就是为什么更改单个对象会更改您的所有值。

尝试为 self.buttonDict 创建一个单独的对象,然后使用该对象为字典中的键设置值。