私はいくつかの初期番号を格納している 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 が機能しないのはなぜですか?