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

Daniel Mendez
Daniel Mendez
6,296 Points

I can't find reference from videos to initialize mutable dictionary with only one line of code.

Cant find a reference to initialize NSMutableDictionary with one line of code. I know that you can initialize NSDictionary with values, but I can't find you can do the same thing with NSMutableDictionary.

Here is how I initialize below:

NSMutableDictionary *carDict = [[NSMutableDictionary alloc] init];

[carDict setObject:@"Honda" forKey: @"Make"]; [carDict setObject:@"Accord" forKey: @"Model"];

NSMutableDictionary *carDict = [[NSMutableDictionary alloc] init];

[carDict setObject:@"Honda" forKey: @"Make"];
[carDict setObject:@"Accord" forKey: @"Model"];

1 Answer

Chris McKnight
Chris McKnight
11,045 Points

Since NSMutableDictionary is a subclass of NSDictionary, you can initialize NSMutableDictionary in one line the same way you would initialize NSDictionary with one line. My preferred approach is to use the designated initializer, initWithDictionary:.

NSMutableDictionary *carDict = [[NSMutableDictionary alloc] initWithDictionary:@{ @"Make" : @"Honda", @"Model" : @"Accord" }];