0

そのため、私のアプリではNSUserDefaults、少なくとも20個程度の整数キーをいくつか保存していました。

このようなものですが、多くあります:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:1 forKey:@"game1"];
[prefs setInteger:1 forKey:@"game2"];
[prefs setInteger:1 forKey:@"game3"];

だから私はただ疑問に思っていました、 私は電話するべきですか:

[[NSUserDefaults standardUserDefaults] synchronize];

保存するたびに?

保存している整数の不整合が発生しxCode、ホームボタン内またはホームボタンからアプリを停止、実行してロードしていることがあるためです。

私は次のようなサイトでいくつかの記事を読みました。

iOS4では、ホームボタンを押したときにユーザーデフォルトが保存されない場合があります。手動で呼び出すと[[NSUserDefaults standardUserDefaults] synchronize]、が正しく保存されapplicationDidEnterBackground:ていることを確認できます。User Defaults

これはiOS5でも同じですか?または、より正確な方法、整数を保存するより短い方法があります。助けてくれてありがとう。

4

2 に答える 2

1

Appleのドキュメントには次のように書かれています。

「このメソッドは定期的に自動的に呼び出されるため、自動同期を待つことができない場合(たとえば、アプリケーションが終了しようとしている場合)、またはユーザーのデフォルトをディスク上にあるものに更新する場合にのみ、このメソッドを使用してください。何も変更していませんが」

したがって、設定するデータの緊急性によっては、同期を呼び出す必要がない場合があります。完全なドキュメントはこちらです。

于 2012-07-16T14:17:07.537 に答える
0

いいえ、必要はありません。を呼び出すsetInteger:forKey:prefs、自動的に保存されます。

于 2012-07-16T14:16:01.890 に答える