2010-12-27 4 views
0

NSArrayをplistに保存しようとしていますが、シミュレータで試してみると正常に動作しますが、ライティングで。ここにコード:シミュレータでNSArrayを書くと、シミュレータで動作しますが、デバイスでエラーが発生します

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

} 

私はパスに何か問題があるとは思いますが、わかりません。

なぜこのようなことが起こる可能性がありますか?おかげ

答えて

3

あなたはデバイス上のアプリケーションバンドルに書き込むことができない、あなたの代わりにドキュメントフォルダまたはキャッシュフォルダに書き込む必要があります。

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

ありがとうございましたが、今どのように私はXcodeのを通じてそのディレクトリ内のplistを作成することができます??なぜなら私はそれを読むたびに最初に作成したplistを読んでいて、変化していないからです。ありがとうありがとう – JonLOo

+0

起動時にplistファイルがdocsフォルダに存在するかどうかをチェックし、それが存在しない場合は読み込み、アプリケーションバンドルリソースの場合は – Vladimir

+0

okありがとう! – JonLOo

関連する問題