Не може да се прочете 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, като щракнете върху type до него.

Също така има проблем във вашия код - никога не осъществявате достъп до елемента "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 като речник и създадох масив в root и добавих елементи към този масив. Благодаря! - person raginggoat; 16.12.2013