我希望从一个嵌套在另一个数组中的数组中删除一个项目但是尝试我可能无法让代码工作。
这就是我在代码中的内容:
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 Arrays Demo [6958:303] *由于未捕获的异常'NSRangeException'终止应用程序,原因:'* - [__ NSArrayM objectAtIndex:]:index 1超出界限[0 .. 0]' * 第一次抛出调用堆栈: ( 0 CoreFoundation 0x00007fff8e9d0b06 __exceptionPreprocess + 198 1 libobjc.A.dylib 0x00007fff922953f0 objc_exception_throw + 43 2 CoreFoundation 0x00007fff8e96d8ec - [__ NSArrayM objectAtIndex:] + 252 3阵列演示0x0000000100001ca8 main + 1592 4 libdyld.dylib 0x00007fff8e8127e1 start + 0 5 ??? 0x0000000000000001 0x0 + 1 ) libc ++ abi.dylib:terminate调用抛出异常
我做错了什么?
HELP !!!!!!!
答案 0 :(得分:0)
array1,array2,array3是NSArray
的对象。因此,您无法删除这些数组中的元素。您应该将这些数组创建为NSMutableArray
。