2010-12-27 6 views
0

Ich versuche, ein NSArray zu einem Plist zu speichern, wenn ich es auf dem Simulator versuche, funktioniert es richtig, aber wenn ich es auf dem Gerät ausführen, schlägt es fehl beim Schreiben. Hier ist der Code:schreiben ein NSArray zu plist funktioniert im Simulator aber schlägt in das Gerät

-(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"); 
    } 

} 

Ich nehme an, dass etwas mit dem Pfad falsch ist, aber ich bin mir nicht sicher.

Wer weiß, warum kann das passieren?

dank

Antwort

3

Sie nicht zu Anwendungspaket auf dem Gerät schreiben können, sollten Sie auf Ordner Dokumente oder Ordner Caches schreiben statt:

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

Vielen Dank, aber jetzt, wie kann ich die plist in diesem Verzeichnis durch die xCode erstellen ?? Denn jedes Mal, wenn ich es lese, lese ich das erste erstellte Plist und das ändert sich nicht. Vielen Dank – JonLOo

+0

Fügen Sie zunächst plist als Ressource dann beim Start überprüfen Sie, ob Plist-Datei in docs Ordner vorhanden ist, dann lesen Sie es, wenn es nicht vorhanden ist dann lesen Sie das, das ist in Anwendung Bundle-Ressourcen – Vladimir

+0

ok vielen Dank! – JonLOo

Verwandte Themen