0

我希望从嵌套在另一个数组中的数组中删除一个项目,但我可能无法让代码工作。

这就是我的代码中的内容:

    NSArray *array1 =[[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",nil];
    NSArray *array2 =[[NSArray alloc] initWithObjects:@"a",@"b",@"c",@"d",@"e",nil];
    NSArray *array3 =[[NSArray alloc] initWithObjects:@"10",@"9",@"8",@"7",@"6",nil];

    NSMutableArray *arrayOfArrays = [[NSMutableArray alloc] initWithObjects:array1,array2,array3, nil];

然后我使用 NSLog 来显示我想要删除的项目。

    NSLog(@"Array item 1 position 3 = %@", [[arrayOfArrays objectAtIndex:1] objectAtIndex:3]);

这将返回正确的“d”。

所以现在我想删除该项目,所以我尝试使用以下代码:

    NSMutableArray *subArray = [[NSMutableArray alloc] initWithObjects:arrayOfArrays [1], nil];
    [[subArray objectAtIndex:0] removeObjectAtIndex:3];

当它运行并达到上述行时,我得到以下信息:

2013-05-22 14:19:01.070 数组演示 [6958:303] * 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“* - [__NSArrayM objectAtIndex:]:索引 1 超出范围 [0 .. 0]” * First throw call stack: ( 0 CoreFoundation 0x00007fff8e9d0b06 __exceptionPreprocess + 198 1 libobjc.A.dylib 0x00007fff922953f0 objc_exception_throw + 43 2 CoreFoundation 0x00007fff8e96d8ec -[__NSArrayM objectAtIndex:] + 252 3 Arrays Demo 0x0000000100001ca8 main + 1592 4 libdyld.dylib 0x00007fff8e8127e1 start + 0 5 ??? 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: 终止调用抛出异常

我究竟做错了什么?

帮助!!!!!!!

4

1 回答 1

0

array1、array2、array3 是 的对象NSArray。所以你不能删除这些数组中的元素。您应该将这些数组创建为NSMutableArray.

于 2013-05-22T13:32:19.543 回答