Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Object-Oriented Objective-C Memory, Arrays and Loops, Oh My! Introduction to NSArray and NSMutableArray

Ibrahim Al-Khalidi
Ibrahim Al-Khalidi
414 Points

Repeted array ( same array as not changeble writted in changebles arrays)!?

At time 3:12 the first Array ( changeble ) it is the same array mentioned in the notchangebles arrays ( the last one)?

Could you please clearify that :)

The array I mean is :

NSArray *nameArray [NSArray arrayWithObjects: @"Andrew", @"Kenneth", @"Craig", @"Kenneth", nil];

Thank you

1 Answer

Amit Bijlani
STAFF
Amit Bijlani
Treehouse Guest Teacher

They are two separate definitions :

  1. The first one declaring an NSArray which is an unchangeable array.

    NSArray *nameArray = [NSArray arrayWithObjects: @"Andrew", @"Kenneth", @"Craig", @"Kenneth", nil];
    
  2. The second one has two declarations one using the convenience constructor:

    NSMutableArray *nameArray2 = [NSMutableArray arrayWithObjects: @"Andrew", @"Kenneth", @"Craig", @"Kenneth", nil];
    

    Notice that the classname is NSMutableArray, mutable means that the array can be modified after declaration.

  3. You can also declare it using the designated initializer:

    NSMutableArray *nameArray3 = [[NSMutableArray alloc] initWithObjects: @"Andrew", @"Kenneth", @"Craig", @"Kenneth", nil];
    

    Here we are using the alloc and init approach. Bot the declarations above has the same desired effect.