Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 215
evilgeniuz Avatar asked Mar 05 '13 12:03

evilgeniuz


2 Answers

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.
like image 192
David Haynes Avatar answered Nov 15 '22 02:11

David Haynes


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);
like image 3
Dhruvik Avatar answered Nov 15 '22 04:11

Dhruvik