Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Crash NSMutableDictionary设置值导致崩溃_Crash_Nsmutabledictionary - Fatal编程技术网

Crash NSMutableDictionary设置值导致崩溃

Crash NSMutableDictionary设置值导致崩溃,crash,nsmutabledictionary,Crash,Nsmutabledictionary,这就是我在数组中添加的方式 NSMutableArray *arr; arr = [[[NSMutableArray alloc] init] autorelease]; [[NSUserDefaults standardUserDefaults] setObject:arr forKey:kSelectedCurrencies]; 你应该得到一些东西,一个堆栈跟踪,一个异

这就是我在数组中添加的方式

NSMutableArray                          *arr;
arr                                 =   [[[NSMutableArray alloc] init] autorelease];

[[NSUserDefaults standardUserDefaults]  setObject:arr forKey:kSelectedCurrencies];

你应该得到一些东西,一个堆栈跟踪,一个异常等等-[\uu NSCFDictionary setObject:forKey:]:mutating method发送到immutable object'这是我运行它时得到的一个设备可能意味着
currencyList
数组中的字典是
NSDictionary
类型对象,不是
NSMutableDictionary
类型对象。您是否有向
currencyList
添加内容的位置和代码?这可能就是您创建阵列的方式,但您如何向该阵列添加对象最初创建阵列时,它似乎在工作,尝试将第一行更改为
NSMutableDictionary*dict=…
,可能在将其添加到数组后,它会将其转换为不可变字典
NSMutableArray                          *arr;
arr                                 =   [[[NSMutableArray alloc] init] autorelease];

[[NSUserDefaults standardUserDefaults]  setObject:arr forKey:kSelectedCurrencies];
NSDictionary *dict = [[[NSMutableDictionary alloc] init] autorelease];

[dict setValue:countryCode[pos] forKey:kSelectedCurrencyCode];
[dict setValue:countryName[pos] forKey:kSelectedCurrencyCountry];
[dict setValue:[NSNumber numberWithFloat:2.0] forKey:kSelectedCurrencyINR];
[dict setValue:currencyName[pos] forKey:kSelectedCurrencyName];
[temp addObject:dict];
[[NSUserDefaults standardUserDefaults] setObject:temp forKey:kSelectedCurrencies];
[[NSUserDefaults standardUserDefaults] synchronize];