Ios 更改dict数组中键的值
我有一个数组,它有不同的数据,一个是celcius记录的温度。当用户将默认设置更改为华氏度时,我需要更改collectionView中显示的信息数组。程序可以正确编译,但是当视图加载时,编译器会崩溃,没有错误,只会以绿色高亮显示该行,并在右角显示线程1:breakpoint1.1 突出显示的行如下所示Ios 更改dict数组中键的值,ios,nsmutablearray,nsmutabledictionary,Ios,Nsmutablearray,Nsmutabledictionary,我有一个数组,它有不同的数据,一个是celcius记录的温度。当用户将默认设置更改为华氏度时,我需要更改collectionView中显示的信息数组。程序可以正确编译,但是当视图加载时,编译器会崩溃,没有错误,只会以绿色高亮显示该行,并在右角显示线程1:breakpoint1.1 突出显示的行如下所示 [dict setObject:[NSNumber numberWithInteger:number] forKey:@"temp"]; 我也只是试图绕过这个问题,但没有成功: [dict se
[dict setObject:[NSNumber numberWithInteger:number] forKey:@"temp"];
我也只是试图绕过这个问题,但没有成功:
[dict setObject:@"11" forKey:@"temp"];
我在数组中循环并更改数据的代码是:
changedArray = [[NSMutableArray alloc] initWithCapacity:50];
for (NSMutableDictionary *dict in locationArray) {
if ( [[dict objectForKey:@"site"] isEqual:[defaults objectForKey:@"location"]] ) {
NSInteger number = [[dict objectForKey:@"temp"] integerValue];
number = ((number * 1.8) + 32);
[dict setObject:[NSNumber numberWithInteger:number] forKey:@"temp"];
[changedArray addObject:dict];
}
}
如果我删除更改dict中温度值的三行代码,它将正确编译并运行。这款ios noob的任何内部配置都将非常好,谢谢。:-) 我猜数组中的dictionary实例都是不可变的
NSDictionary
对象。只是类型转换不会将它们转换为可变的。试试下面的方法
NSMutableDictionary
但我的建议是始终只在一个单元中保持温度,用户倾向于使用更多的单元。只有在需要显示时,才可以使用用户选择的单位进行检查,然后进行计算并刷新 你能发布一个locationArray吗?并添加expection断点,查看其确切停止位置以及完整错误是什么?