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! Review Dictionaries and Arrays

Mikhail Bliznyuk
Mikhail Bliznyuk
8,893 Points

Now add the values in our array to our new dictionary.

Now add the values in our array to our new dictionary. The keys for the values should be: 'customer', 'size', 'style' and 'color'. The values in the original array are in the same order as the keys listed above. (Note: Don't set the values directly as strings, but rather use something like 'objectAtIndex' to reference the original array.)

I am confused here. Don't know what to do, I have already tried almost everything. Could someone help? I really appreciate, thank you!

variable_assignment.mm
NSArray *shoeOrder = [[NSArray alloc] initWithObjects: @"Charles Smith", @(9.5), @"loafer", @"brown", nil];
NSMutableDictionary *shoeOrderDict = [[NSMutableDictionary alloc] init];

2 Answers

Hi Mikhail,

You've got the first two lines spot on! Next, you want to use setObject: forKey to populate your dictionary. Access the array using objectAtIndex:. Here's one line - you should be OK to work the rest out from there.

NSArray *shoeOrder = [[NSArray alloc] initWithObjects: @"Charles Smith", @(9.5), @"loafer", @"brown", nil];
NSMutableDictionary *shoeOrderDict = [[NSMutableDictionary alloc] init];
[shoeOrderDict setObject:[shoeOrder objectAtIndex:0] forKey:@"customer"];

Let me know how you get on.

Steve.

No problem! :+1:

Ibrahim Al-Khalidi
Ibrahim Al-Khalidi
414 Points

what about this way ?

NSArray *shoeOrder = [[NSArray alloc] initWithObjects: @"Charles Smith",[NSNumber numberWithDouble: 9.5], @"loafer" ,@"brown", nil];

NSMutableDictionary *shoeOrderDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys: @"[objectAtIndex:0 in shoeOrder]", @"customer", @"[objectAtIndex:1 in shoeOrder]" , @"size", @"[objectAtIndex:2 in shoeOrder]", @"style",@"[ objectAtIndex:3 in shoeOrder]",@"color", nil]; 

Bummer! It looks like at least one of your key/value pairs is incorrect. Check them carefully for syntax and spelling.