0

現在、2D NSMutableArray でデータを作成してアクセスしようとしています。配列を配列にネストする必要があることを理解しました。問題は、さまざまな 1D 配列にアクセスするのに問題があることです。

2D 配列を初期化するコードは次のとおりです。すべての配列は NSMuttableArray です。

if(simSections == nil  || [simSections count] == 0) {
    simSections = [[NSMutableArray alloc] init];

    for (int i = 0; i < 8 ; i++) {
        simData[i] = [[NSMutableArray alloc] init];
        [simSections addObject:simData[i]];
    }
}

そして今、最初の配列の最初のスペースにオブジェクトを追加しようとしています:

[[simSections objectAtIndex:0] addObject:[NSString stringWithString:@"Test"]];

このエラーが発生しましたが、simData 配列を追加したため、simSections 配列が空になる理由がわかりません。

* キャッチされない例外 'NSRangeException' が原因でアプリを終了します。理由: '* -[NSMutableArray objectAtIndex:]: インデックス 0 が空の配列の境界を超えています'

何か考えはありますか?どうぞよろしくお願いいたします。

ありがとうございました。

4

2 に答える 2

0

記入用のコードはsimSections私には正しいようです。その場合、問題は、そのコードが実際に実行されているオブジェクトに対して呼び出されていないことにあると思います[simSections objectAtIndex:0]

両方のコードにロギングを追加します。ログselfに記録simSectionsし、それらが期待どおりのオブジェクトであることを確認します。「%@」ではなく「%p」形式指定子を使用してログを記録することをお勧めします。これは、ポインタ値にのみ関心があるためです。

于 2012-06-06T08:29:58.413 に答える
0

simSections 配列を確認してください。空いてるらしい

于 2012-06-05T21:12:01.520 に答える