Given this P-List Dictionary:

How do I get at the 3rd. Key – “Dinner” – which in itself is also a Dictionary, and parse its values correctly?
Or, should I structure this P-List differently to begin with, so I can get at everything more easily?
Here’s what I got, starting by grabbing all the Keys from my ‘MenuDictionary’ and storing them in an Array:
// Load the Property-List file into the Dictionary:
MenuDictionary = [[NSDictionary alloc] initWithContentsOfFile:menuPath];
// Get all the Keys from the Dictionary, put 'em into a 'mealTimesArray':
mealTimesArray = [[MenuDictionary allKeys] sortedArrayUsingSelector:@selector(compare:)];
// For each meal-type KEY, grab all the Values (dishes) in it and store them in a 'mealDishesArray':
for (NSString *mealTime in mealTimesArray) {
NSArray *mealDishesArray = [MenuDictionary valueForKey:mealTime];
// Now I can iterate through the 'mealDishesArray' to access each dish at
// a time, so I can print them out or do whatever else:
for (NSString *dish in mealDishesArray) {
NSLog(@"Iterating through 'mealDishesArray' now...");
NSLog(@"Current 'dish' is: %@", dish);
The problem occurs when I get to the “Dinner” key: its a Dictionary, containing 2 Keys with 2 array Values. So how do I load its contents into a Dictionary object? More specifically, what ‘init’ method should I be using to load the “Dinner” contents into my new Dictionary object?
I tried this – doesn’t work:
// I put this inside the first fast-enum loop:
if ([mealTime isEqualToString: @"Dinner"]) {
// init new Dictionary object (declared previously):
dinnerDictionary = [[NSDictionary alloc] initWith ???];
I’d like to init it with the contents of the “Dinner” Key, but its not a P-List file obviously, so I can’t use
initWithContentsOfFile: pathName
I don’t understand which of the other init methods will give me access to both the Keys and Values of “Dinner”. Because even though “Dinner” is structured as a Dictionary, its currently sitting inside an Array, which doesn’t regard it as a Dictionary (I think…)
I’m a little unclear about this obviously.
Or, should I be structuring my P-List differently to begin with so I can get at this nested Dinner dictionary?
Any ideas?
I think plist structure makes sense, and dealing with the contents conditionally based on class is perfectly okay, too. I would react to what’s in the plist within a reasonable range of expectations, so…