Не удается прочитать файл plist

У меня проблемы с чтением данных в файле plist. Я не печатаю titleString в консоли, как я ожидал. Что я делаю неправильно?введите здесь описание изображения

NSString *path = [[NSBundle mainBundle] pathForResource:@"Events" ofType:@"plist"];
    NSDictionary *dictPri = [[NSMutableDictionary alloc]initWithContentsOfFile:path];
    NSMutableArray *arrEvents = [[NSMutableArray alloc] initWithArray:[dictPri valueForKey:@"Root"]];

    for (NSDictionary *dict in arrEvents)
    {
        NSString *titleString = nil;
        NSString *date = nil;
        titleString = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Title"]];
        date = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Date"]];

        NSLog(@"Title String: %@", titleString);
    }

person raginggoat    schedule 16.12.2013    source источник


Ответы (1)


Ваш основной элемент (Root) - это словарь, а не массив - измените его в plist, щелкнув тип рядом с ним.

Также в вашем коде есть проблема - вы никогда не обращаетесь к элементу "Root" по имени - по умолчанию это объект верхнего уровня. Рассмотрите возможность дополнительной инициализации массива, которая не требуется.

Фиксированный код:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Events" ofType:@"plist"];
NSArray* arrEvents = [NSArray arrayWithContentsOfFile:path];

for (NSDictionary *dict in arrEvents)
{
    NSString *titleString = [NSString stringWithFormat:@"%@",[dict objectForKey:@"Title"]];
    NSString *date = [NSString stringWithFormat:@"%@",[dict objectForKey:@"Date"]];

    NSLog(@"Title String: %@", titleString);
}
person Grzegorz Krukowski    schedule 16.12.2013
comment
Я оставил Root в качестве словаря и создал массив в корне и добавил элементы в этот массив. Спасибо! - person raginggoat; 16.12.2013