私はiosアプリを持っています。私はいくつかのデータを保存する必要があります。データをtxtに保存する
[toFile writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
しかし、私はデータを保存するビューコントローラを、dissmisする場合、ファイルの内容が再びnullである:私はこのようにtxtファイルでそれを実行しようとしました。どうして?
私はiosアプリを持っています。私はいくつかのデータを保存する必要があります。データをtxtに保存する
[toFile writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
しかし、私はデータを保存するビューコントローラを、dissmisする場合、ファイルの内容が再びnullである:私はこのようにtxtファイルでそれを実行しようとしました。どうして?
私はあなたのアプリのバンドルに書き込もうとしているでしょう。できません。 NSDocumentsDirectoryまたは[app sandbox]/Libraryに書き込む必要があります。あなたのwriteToFile
とするときwriteToFile
戻ります(それが失敗した意味)NO
からNSError *
パラメータで
パス、あなたは何が悪かったのかを把握するために役立つNSError
情報をプリントアウトすることができます。例えば
:
NSError * error = nil;
BOOL success;
success = [toFile writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (success == NO)
{
NSLog(@"error in writeToFile - %@", [error localizedDescription]);
}
アプリバンドルに書き込みを傾けるので、リソースディレクトリ、ドキュメントディレクトリ内のファイルを保存しないようにしてください。また
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"user.txt"];
iOS Storage Guidelines(ログイン必要)チェックアウト:ユーザー生成、またはそうでなければ、あなたのアプリケーションで再作成することができないです
- のみの文書やその他のデータは、に格納されなければならないが /Documentsディレクトリにあり、iCloudによって自動的に がバックアップされます。
私はそこのチュートリアルは、あなたがiOSの上でディレクトリやファイルを操作する方法を理解するのに役立つことができると思います:*パス= [[NSBundleをNSStringの
私はどこに私の.txtファイルをプロジェクトに置くべきですか? –
私の例を更新しました。それがうまくいくようなfilePathを生成する場合: – dom
ええ。ただし、初めてこのファイルを作成する必要がありますか?あなたのリンクdoesntの作品 "このWebページはリダイレクトループを持っています" –
mainBundle] pathForResource:@ "user" ofType:@ "txt"]; - 違いますか? –
はい、そうです。あなたはあなたのアプリケーションバンドルに書き込むことはできません。 –
真剣に、なぜ地球上でこれdownvotingですか? –