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 Diving Deeper - Classes, Properties and Methods Methods in Practice

In the addMenuItems method why didn't you have to alloc and init the array?

in this method:


    for (MenuItem *menuItem in menuItems) {
        [self.itemsOrdered addObject:menuItem.itemName];
        self.subtotal += menuItem.itemPrice;
    return self;

why didn't we have to alloc and init the arrayname array?

Jey Miranda
Jey Miranda
4,025 Points

When creating that method of addMenuItems, that parameters it takes as input is also declaring a new array called menuItems? because in the for in loop, what i believe it says is " for each MenuItem in menuItems Array, create a variable called *menuItem and send it through the loop" . So my question is, did you previously created an NSMutableArray called menuItems else where, or you created it at the same time you specified the type of input in the new method call -addMenuItems?

1 Answer

Anjali Pasupathy
Anjali Pasupathy
28,883 Points

You don't have to alloc and init menuItems because the parameter for addMenuItems is an NSMutableArray that's already been alloc'd and init'd.