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 Build a Vending Machine App in Swift Modeling An Interface Laying the Groundwork

Sebastian Hoffmann
Sebastian Hoffmann
1,601 Points


Hi there,

I don't understand why we have to initialize the inventory variable in the protocol "VendingMachine".

Could anybody explain that to me?

Thank you very much for your help!

1 Answer

Hi, I think Pasan explains this later on in the beginning of the next section (in the 2nd video titled "Type Methods").

Technically, you don't have to have an init there since it's not required. But... idea-wise, we want to have an init there to prevent creating a struct that has no data inside it because it wouldn't make sense to have a vending machine with no items. So by creating an init method there, it forces you to include an inventory along with it, right when it is created.