对数组中的数组使用“replaceObjectAtIndex”

时间:2011-03-17 21:07:53

标签: iphone object multidimensional-array replace

我在(可变)数组中有一个数组。我试图用“replaceObjectAtIndex。”替换某些对象。

我试过了:

[[mutableArrayName objectAtIndex:0]replaceObjectAtIndex:0 withObject:@"TEST"]; 

但是我收到以下错误:

- [__ NSArrayI replaceObjectAtIndex:withObject:]:无法识别的选择器发送到实例0x4e24d70 2011-03-17 17:02:07.008联系方式[5145:207] * 由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSArrayI replaceObjectAtIndex:withObject:]:发送无法识别的选择器例如0x4e24d70'

我也尝试了这个:

    [mutableArrayName replaceObjectAtIndex:[[mutableArrayName objectAtIndex:0]objectAtIndex:0] withObject:@"TEST"];

但是我收到以下错误:

*由于未捕获的异常'NSRangeException'而终止应用程序,原因:'* - [NSMutableArray replaceObjectAtIndex:withObject:]:索引16660超出边界[0 .. 0]'

2 个答案:

答案 0 :(得分:5)

第二种方法依赖于有3个数组而不是2.第一种方法似乎没问题,但我猜你NSArray内有NSMutableArray,因为NSArray:replaceObjectAtIndex:withObject不存在。因此,请确保所有数组都是可变的。

答案 1 :(得分:2)

据我所知,你有:一个可变数组,在其中,你有更多的数组。现在你想要获取其中一个“子阵列”并进行修改。

在这种情况下,第一次尝试是正确的,只是您NSArray内有NSMutableArray个实例。你不能修改那些,因此例外。因此,您需要确保在外部NSMutableArrays内填充NSMutableArray。然后第一次尝试的呼叫将成功。