6

での奇妙な動作NSMutableArray

オブジェクトを作成して塗りつぶしました。

NSMutableArray *array = [[NSMutableArray alloc] 
                         initWithObjects:@"1",@"2",@"3",@"4", nil];
[array removeObjectAtIndex:0];

削除する前は次のようになります。

array   NSMutableArray *    0x1040b5e0
[0] id  0x00088a44 @"1"
[1] id  0x00088a54 @"2"
[2] id  0x00088a64 @"3"
[3] id  0x00088a74 @"4"

FIRST 要素を削除した後:

array   NSMutableArray *    0x1040b5e0
[0] id  0x00000000 
[1] id  0x00088a54 @"2"
[2] id  0x00088a64 @"3"

ここで何が間違っていますか?

4

2 に答える 2

8

デバッグに lldb を使用していますか? その場合はgdbを試してください。

lldb には、デバッグ セッション中に変数の誤った値を報告する、この性質の既知のバグがあります。

デバッガーを gdb に変更するには:

  1. ツールバーでターゲットをクリックします
  2. 「スキームの編集」を選択します
  3. 左側のペインで「実行」スキームが選択されていることを確認します。
  4. 「Debugger」ドロップダウンを lldb から gdb に変更します。
于 2013-03-05T12:46:37.290 に答える
3

あなたの同じコードは正常に動作しています。プロジェクトをクリーンアップしてビルドするだけです。ここに私のコードがあります

NSMutableArray *sampleArray = [[NSMutableArray alloc]
                         initWithObjects:@"1",@"2",@"3",@"4", nil];
NSLog(@"%@", sampleArray);
[sampleArray removeObjectAtIndex:0];
NSLog(@"%@", sampleArray);
于 2013-03-05T12:53:09.240 に答える