Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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:

   -addMenuItems:(NSMutableArray*)menuItems{

    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.