Updating a label multiple times in a loop doesn't make sense - you'll only see the last value. If you run your code as-is, I'd expect to see just "g" - only the last item will wind up in the label.
If I run my modified code I see 1,2,3,f,g in the log, so your array is fine:
Code:
NSMutableArray *my_array = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"f",@"g",nil];
//And a for cycle
for(int i=0; i < [my_array count]; i++)
{
NSLog(@"item: %@",[my_array objectAtIndex:i]);
}
Are you modifying "i" somewhere else? Are you modifying the array somewhere else?