アプリケーションを終了するときに、iPhone アプリケーションでプログラム変数の値を保持する必要があります。SDK は、プログラマーが使用する非揮発性メモリを提供しますか? どのくらい利用できますか?電源を入れ直しても保持されますか? スリープモード経由?ハードリセットを介して?
5 に答える
後で使用するためにアプリからのデータを保存するために利用できる多くのオプションがあります。指摘されているように、そのうちの2つはNSUserDefaultsとSQLiteを使用しています。もう1つの方法は、アプリの「ドキュメント」フォルダーにファイルを作成し、ここにデータを保存することです。次回アプリを起動したときにファイルの内容を読みます。これは、Appleのファイルとネットワークガイドで説明されています
データベースを使用している場合でも、アプリのサンドボックスのDocumentsフォルダーにデータベースのコピーを作成して、アプリの更新をリリースしても保持されるようにしてください。
NSUserDefaultsクラスを使用してユーザー設定を保存します。とても簡単です。それらは、デバイスの再起動、電源の再投入などを経ても保持されます。
開始するための短いチュートリアルを次に示します。
アプリのローカル ストレージ領域に書き込むか、sqlite データベースを使用できます。両方のオプションは、http://developer.apple.com/iphone/library/codinghowtos/DataManagement/index.html#FILE_MANAGEMENT-WRITE_INFORMATION_LOCALLYに記載されています。
-(void)saveToUserDefaults:(NSString*)myString
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:myString forKey:@"Prefs"];
[standardUserDefaults synchronize];
}
}
-(NSString*)retrieveFromUserDefaults
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
NSString *val = nil;
if (standardUserDefaults)
val = [standardUserDefaults objectForKey:@"Prefs"];
return val;
}
最良のオプションは、それらをアプリケーションの SQLite DB インスタンスに保存することです。それは、不揮発性メモリに近づくのと同じくらいです。