2

私はいくつかの初期番号を格納している NSMutable 配列を持っています。私がやりたいのは、数字を見て、状況によっては、そのアイテムを削除して、さらに 2 つに置き換えることです。

私の挿入/置換コードは index > 0 のときに機能するようですが、insertObject AtIndex:0 を実行しようとすると、0 には何も挿入されず、配列の最後に null オブジェクトが配置されます。

挿入の問題を示すために、空の iOS アプリケーションを作成できます。

ViewController のプロパティとして NSMutableArray を作成します。

@property (strong) NSMutableArray *testArray;

そして、実装では:

self.testArray = [[NSMutableArray alloc] init];

[self.testArray addObject: [NSNumber numberWithInteger:1]];
[self.testArray addObject: [NSNumber numberWithInteger:2]];

[self.testArray insertObject:[NSNumber numberWithInteger:3] atIndex:0];

挿入後にブレークポイントを配置すると、デバッガーは次のように表示します: [0] = (id) 0x07123180 (int) 1 [1] = (id) 0x07614210 (int) 2 [2] = (id) 0x00000000

0 位に (int) 3 が表示されると予想していた場所。

atIndex:1 を設定すると、次のようになります。 [0] = (id) 0x07123180 (int) 1 [1] = (id) 0x07131fb0 (int) 3 [2] = (id) 0x07614210 (int) 2

どちらが正しい。

index = 0 が機能しないのはなぜですか?

4

2 に答える 2