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 Arrays Demo[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 に答える