私が設計しているアプリには、アプリが閉じられたときにそれぞれが .txt ファイルに保存され、アプリが開いたときに読み戻されるいくつかのテキスト フィールドがあります。ただし、アプリを配布しようとすると (アプリケーションとしてエクスポートし、友人にドロップボックス化するだけです)、送信先の人々は、コンピューターに保存するファイルの場所を持っていないため、テキスト フィールドは保存されません。アプリのダウンロード時にコンピューターに .txt ファイルを作成する方法はありますか? または、配布時に .txt ファイルを保存するよりも良い保存方法はありますか? ありがとう。
2 に答える
1
NSUserDefaults を使用して、(できればかなり小さい) テキストをアプリの設定データベースに保存しないのはなぜですか? サンドボックスの制限や非標準の保管場所に違反することなく、存在し、アクセスできることが保証されています。
さらに、質問に対する直接的な回答が必要な場合は、より多くの情報を提供する必要があります。具体的には、使用している正確なパスと、受け取った正確なエラーは何ですか? 実行時にファイルを作成するだけなのに、なぜ空のテキスト ファイルをバンドルする必要があると思いますか?
于 2013-04-03T18:23:30.197 に答える
1
最初の .txt ファイルをアプリケーション バンドルにパッケージ化するだけです。ファイルがユーザーのローカル ファイル システムに存在するかどうかを確認します。そうでない場合は、バンドルの .txt ファイルを文字列に読み取り、その文字列をユーザーのファイル システムの正しい場所に保存します。
NSError *fileError = nil;
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
//Read the file
NSString *fileContents = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&fileError];
if (fileError) {
//Handle the error
}
} else {
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"initialFile" ofType:@"txt"];
NSString *initialFileContents = [[NSString alloc] initWithContentsOfFile:bundlePath encoding:NSUTF8StringEncoding error:&fileError];
if (!fileError) {
[initialFileContents writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&fileError];
if (fileError) {
//Handle the error
}
}
}
于 2013-04-03T15:37:51.453 に答える