我在(可变)数组中有一个数组。我试图用“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]'
答案 0 :(得分:5)
第二种方法依赖于有3个数组而不是2.第一种方法似乎没问题,但我猜你NSArray
内有NSMutableArray
,因为NSArray:replaceObjectAtIndex:withObject
不存在。因此,请确保所有数组都是可变的。
答案 1 :(得分:2)
据我所知,你有:一个可变数组,在其中,你有更多的数组。现在你想要获取其中一个“子阵列”并进行修改。
在这种情况下,第一次尝试是正确的,只是您NSArray
内有NSMutableArray
个实例。你不能修改那些,因此例外。因此,您需要确保在外部NSMutableArrays
内填充NSMutableArray
。然后第一次尝试的呼叫将成功。