0

私が設計しているアプリには、アプリが閉じられたときにそれぞれが .txt ファイルに保存され、アプリが開いたときに読み戻されるいくつかのテキスト フィールドがあります。ただし、アプリを配布しようとすると (アプリケーションとしてエクスポートし、友人にドロップボックス化するだけです)、送信先の人々は、コンピューターに保存するファイルの場所を持っていないため、テキスト フィールドは保存されません。アプリのダウンロード時にコンピューターに .txt ファイルを作成する方法はありますか? または、配布時に .txt ファイルを保存するよりも良い保存方法はありますか? ありがとう。

4

2 に答える 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 に答える