简体   繁体   中英

NSMutableArray removeObjectAtIndex strange issue.

Strange behaviour in NSMutableArray .

I've created object and filled it.

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

Before removing it looks like:

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

After removing FIRST element:

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

What am i doing wrong here?

Are you using lldb for debugging? Try gdb if so.

lldb has known bugs of this nature where it reports the incorrect values of variables during a debug session.

To change the debugger to gdb:

  1. Click your target in the toolbar
  2. Select 'edit schemes'
  3. Make sure the 'run' scheme is selected in the pane on the left.
  4. Change the 'Debugger' dropdown from lldb to gdb.

your same code is working fine., just clean and build the project. here is my code

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM