NSMutableArray removeObjectAtIndex奇怪的问题。

时间:2013-03-05 12:40:34

标签: objective-c nsmutablearray

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"

我在这里做错了什么?

2 个答案:

答案 0 :(得分:8)

您是否正在使用lldb进行调试?如果是,请尝试 gdb

lldb已知这种性质的错误,它会在调试会话期间报告错误的变量值。

将调试器更改为gdb:

  1. 单击工具栏中的目标
  2. 选择“编辑方案”
  3. 确保在左侧窗格中选择了“运行”方案。
  4. 将“调试器”下拉列表从lldb更改为gdb。

答案 1 :(得分:3)

你的相同代码工作正常。只需清理并构建项目。这是我的代码

NSMutableArray *sampleArray = [[NSMutableArray alloc]
                         initWithObjects:@"1",@"2",@"3",@"4", nil];
NSLog(@"%@", sampleArray);
[sampleArray removeObjectAtIndex:0];
NSLog(@"%@", sampleArray);