NSUserDefaults中只可以存储不可变数据,如果存储一个可变的数组或可变字典,取出数据时数组或字典变成不可变类型,如果在修改它们,程序就会报错,所以如果想用NSUserDefaults存储可变数据,需要在取出数据之后,把数据转变为可变类型.
//取出数据存入字典中
NSDictionary *dict = [[NSUserDefaults standardUserDefaults]objectForKey:DEVICE_PUSH_SWITCH];
//转变为可变字典
self.subDeviceSwitchDictM = [NSMutableDictionary dictionaryWithDictionary:dict];