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. 将“调试器”下拉列表从 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 回答