Я уже рассматривал Parse Plist (NSString) into NSDictionary и считал, что это не дубликат, так как этот вопрос и его ответ не затрагивают мои проблемы.Как получить значения из многоуровневого .plist?
У меня есть .plist
файла в файловой системе структурированной так:
Исходный код этого .plist
файла выглядит следующим образом:
{
"My App" = {
"Side Panel" = {
Items = {
Price = "#123ABC";
};
};
};
}
I знаете, как получить товар в Root
вот так:
[[NSBundle mainBundle] pathForResource:@"filename" ofType:@"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
NSString value = [dict objectForKey:@"key"]);
Но что, если структура похожа на мою, с многоуровневыми словарями? Как получить значение Price
?
Я хотел бы сделать это все в одном методе, в идеале, как это:
Вызов
NSString *hexString = [self getColorForKey:@"My App.Side Panel.Items.Price"];
Определение
- (NSString *) getColorForKey: (NSString *)key
{
NSArray *path = [key componentsSeparatedByString:@"."];
NSDictionary *colors = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Colors" ofType:@"plist"]];
NSString *color = @"#FFFFFF"; // white is our backup
// What do I put here to get the color?
return color;
}
возможно дубликат [Анализировать Plist (NSString) в NSDictionary] (http://stackoverflow.com/questions/1072308/parse-plist-nsstring-into-nsdictionary) –
@LouisTur Что касается тот, который разобранного из строка в памяти, и я не вижу, как это или ее ответы применимы к моей проблеме. –
@ LouisTur да, этот ответ мне совсем не помогает. Не могли бы вы рассказать о том, как вы думаете, что это связано? Возможно, лучше узнать о вашем мыслительном процессе. –