Учитывая этот словарь P-List:
Как попасть на 3-й. Ключ - "Ужин" - который сам по себе тоже Словарь, и правильно разбирать его значения?
Или мне следует с самого начала структурировать этот P-список по-другому, чтобы мне было легче добираться до всего?
Вот что я получил, начав с захвата всех ключей из моего «MenuDictionary» и сохранения их в массиве:
// 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);
Проблема возникает, когда я добираюсь до ключа «Ужин»: это словарь, содержащий 2 ключа с 2 значениями массива. Итак, как мне загрузить его содержимое в объект Dictionary? В частности, какой метод «init» я должен использовать для загрузки содержимого «Ужин» в мой новый объект Dictionary?
Пробовал так - не работает:
// I put this inside the first fast-enum loop:
if ([mealTime isEqualToString: @"Dinner"]) {
// init new Dictionary object (declared previously):
dinnerDictionary = [[NSDictionary alloc] initWith ???];
Я хотел бы запустить его с содержимым ключа «Ужин», но, очевидно, это не файл P-List, поэтому я не могу использовать
initWithContentsOfFile: pathName
Я не понимаю, какой из других методов инициализации даст мне доступ как к ключам, так и к значениям «Ужина». Потому что, хотя «Ужин» структурирован как словарь, в настоящее время он находится внутри массива, который не считает его словарем (я думаю...)
Я немного не понимаю этого, очевидно.
Или мне следует для начала по-другому структурировать свой P-List, чтобы я мог получить доступ к этому вложенному словарю Dinner?
Есть идеи?