запись NSArray для plist работает в симуляторе, но не работает в устройстве - PullRequest
0 голосов
/ 27 декабря 2010

Я пытаюсь сохранить NSArray в plist, когда я пробую его на симуляторе, он работает должным образом, но если я запускаю его на устройстве, он не записывает. вот код:

-(void)writePlist:(NSArray*)_newLevelAr{


    NSArray * levels = [NSArray arrayWithArray:_newLevelAr];

    NSString *path = [[NSBundle mainBundle] pathForResource: [NSString stringWithFormat:@"chapter%d",idChapter] ofType:@"plist"];

    if([levels writeToFile:path atomically: YES]){
        NSLog(@"write succesful");}
    else {
        NSLog(@"write failed");
    }

}

Полагаю, что с маршрутом что-то не так, но я не уверен.

Кто-нибудь знает, почему это может происходить? спасибо

1 Ответ

3 голосов
/ 27 декабря 2010

Вы не можете записывать в пакет приложений на устройстве, вместо этого вы должны записать в папку «Документы» или «Кэши»:

// Write file to docs folder
NSString* docFolder = [NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString * path = [docFolder stringByAppendingPathComponent:
                 [NSString stringWithFormat:@"chapter%d.plist",idChapter]];
...