アプリケーションのシャットダウン後にいくつかの整数を保存し、アプリケーションを開いた後にそれらを復元したいのですが、これを行う最も簡単な方法は何ですか?
6 に答える
NSUserDefaults からデータを保存してロードする必要があります。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// to store
[defaults setObject:[NSNumber numberWithInt:12345] forKey:@"myKey"];
[defaults synchronize];
// to load
NSNumber *aNumber = [defaults objectForKey:@"myKey"];
NSInteger anInt = [aNumber intValue];
NSUserDefaults のドキュメントを参照してください。-synchronize
そこに任意のキーと値のペアを設定できます (アプリが終了する前のある時点で共有ユーザー デフォルト オブジェクトを呼び出す限り)。
それらは NSUserDefaults に保存できます。これは主に環境設定に使用されます。
[[NSUserDefaults standardUserDefaults] setObject:someInteger forKey:@"someIntegerKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
さらに保存したいデータがある場合は、それらをプロパティ リスト ファイルに保存することもできます。
NSDictionary *someDictionary = [NSDictionary dictionaryWithObjectsAndKeys:someInt1, @"someIntKey1", someInt2, @"someIntKey2", nil];
[someDictionary writeToFile:somePath error:&error];
アプリの終了時に保存するには、任意のコードを配置します
- (void)applicationWillTerminate:(UIApplication *)application
NSUserDefaults の使用を検討してください。これは、キーと値のペアを追加できる辞書のように機能します。アプリ デリゲートの applicationWillTerminate メソッドと applicationDidEnterBackground メソッドに変数を保存します。applicationDidFinishLoading で変数を再度ロードします。
最も簡単な方法は、NSUserDefaults を使用することです。アプリのデリゲートは-applicationWillTerminate:
、アプリがシャットダウンしようとしているときにメッセージを受け取り、データを NSUserDefaults に書き込むことができます (データ量が多い場合は、独自のファイルに書き込みます)。その後、アプリが再起動すると、アプリ デリゲートは を取得し-applicationDidFinishLaunching
、データを再度読み取ることができます。
それらをシリアル化し、メモリに保存します。アプリを再度開いたときにシャットダウンしてロードする前にこれを行う必要があります