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! Alloc and Init

Andre Robinson
PLUS
Andre Robinson
Courses Plus Student 6,057 Points

help it stated to set value for myRide to Make in carDict but i don't know what I'm doing wrong

How do i set myRide value to make in carDict

variable_assignment.mm
NSMutableDictionary * carDict= [[ NSMutableDictionary alloc ] initWithObjectsAndKeys: @"Honda",@"Make",@"Accord",@"Model",nil];

NSString* myRide= [[NSString alloc] initValueforKey carDict: @"Make"];

1 Answer

Anjali Pasupathy
Anjali Pasupathy
28,883 Points

The syntax for your allocation is right, but your init syntax doesn't work. It looks to me like you're trying to access the NSString value for the key @"Make" in carDict, and initialize myRide with that NSString. You can access the value for the key @"Make" by using the valueForKey: function on carDict.

[carDict valueForKey: @"Make"];

This is a single action that returns the value you want to use, so you need to put that in a set of square brackets so Objective-C can recognize that those variables and keywords should be grouped together.

After grabbing the value, it looks like you're trying to initialize myRide with the NSString. You can do that using initWithString:

NSString* myRide= [[NSString alloc] initWithString: [carDict valueForKey: @"Make"]];

This line of code should allocate memory for an NSString to myRide, and initialize myRide with the NSString that's returned by using the method valueForKey: on carDict.

I hope this helps!