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

Andreas Thorsen
PLUS
Andreas Thorsen
Courses Plus Student 2,925 Points

Please help me on this NSMutableDictionary example. Ive been stuck for ages and it wont work even tho code is good.

Please help me with the answer.

Been stuck for ages.

variable_assignment.mm
NSArray *shoeOrder = @[@"Charles Smith", @(9.5), @"loafer", @"brown"];

NSMutableDictionary *shoeOrderDict;

   shoeOrderDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"@Charles Smith", @(9.5), @"@loafer", @"@brown", nil];

NSString *customer;
  customer = [shoeOrder objectAtIndex: 0];

NSString *size;
  size = [shoeOrder objectAtIndex: 1];

NSString *style;
  style = [shoeOrder objectAtIndex: 2];

NSString *color;
  color = [shoeOrder objectAtIndex: 3];

NSLog(@"Customer: %@ \n Size: %@ \n Style: %@ \n Color: %@", customer, size, style, color);
Todd Anderson
Todd Anderson
4,260 Points

What error are you getting?

1 Answer

Juan Pablo Lazcano
Juan Pablo Lazcano
11,267 Points

the correct code is

NSArray *shoeOrder = @[@"Charles Smith", @(9.5), @"loafer",@"brown"];
NSMutableDictionary *shoeOrderDict = [[NSMutableDictionary alloc] init];
[shoeOrderDict setObject:[shoeOrder objectAtIndex:0] forKey:@"customer"];
[shoeOrderDict setObject:[shoeOrder objectAtIndex:1] forKey:@"size"];
[shoeOrderDict setObject:[shoeOrder objectAtIndex:2] forKey:@"style"];
[shoeOrderDict setObject:[shoeOrder objectAtIndex:3] forKey:@"color"];

in the second line we declare an Empty NSMutableArray using the [[NSMutableDictionary alloc] init]; call, then we get every item in the shoeOrder NSArray using the and objectAtIndex method and finally we add the respective key in using the setObject: forKey: with the given keys, in order to complete the challenge.

Good luck and keep coding!

Andreas Thorsen
Andreas Thorsen
Courses Plus Student 2,925 Points

Thank You so Much!!! I guess i was just confused with what the question was asking me to do.

I really appreciate the help! :)