Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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"];

variable_assignment.mm
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" }];