2011-08-15 7 views
1

次のコードがあります。エラーは発生しませんが、ファイルは更新されません。ファイル書き込みの問題

if([cDate compare:Today] == NSOrderedAscending){ 

    NSLog(@"%@", [NSString stringWithFormat:@"%@, 0", Today]); 
    if(![[NSString stringWithFormat:@"%@, 0", Today] writeToFile:filePath atomically:TRUE]) 
      NSLog(@"writeToFile failed"); 
} 
+0

filePathはどこを指していますか?それはDocumentsディレクトリのような書き込み可能なディレクトリである必要があります - アプリケーションのバンドルではありません。 – InsertWittyName

+0

だから、外側のifが真であると推測できますか?最初のNSLogは書かれていますか? – iandotkelly

+0

ファイルパスは次のように設定されています。NSString * filePath = [[NSBundle mainBundle] pathForResource:@ "info" ofType:@ "txt"];はい、私はメソッドがtrueを返した場合、ファイルが書き込まれると仮定しました。それは間違った前提ですか? – saman01

答えて

1

バンドルに書き込むことはできません。それはコード署名され、読み取り専用です。ドキュメントフォルダを使用する必要があります。

これを使用してドキュメントフォルダにアクセスし、そこに書き込み権限を設定します。

NSArray *basePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
関連する問題