NSUserDefaultsよりも高速にユーザー設定を保存する方法を探しています。NSUserDefaultsに書き込んでから約10秒以内にアプリが強制終了された場合、アプリは永続的に保存されないことがわかりました。デフォルトを使用して、カスタム着信音へのパス、カスタム画像へのパス、マップ座標、および基本的にユーザー定義の設定のみを保存します。コアデータを使用する方が良いオプションですか?SQLite?何が最速で最も軽量であると認められていますか?
1500 次
1 に答える
16
データをすぐに保存するには、必ずsynchronizeを呼び出す必要があります。
[[NSUserDefaults standardUserDefaults] synchronize];
Appleのクラスリファレンスから:
このメソッドは定期的に自動的に呼び出されるため、自動同期を待つことができない場合(たとえば、アプリケーションが終了しようとしている場合)、またはユーザーのデフォルトをディスク上にあるものに更新する場合にのみ、このメソッドを使用してください。変更は加えていません。
そして、2番目の質問に答えるには、実際に保存するデータの量によって異なります。NSUserDefaultsは、トグルスイッチの状態など、非常に少量のデータ(設定用)を保存するように設計されています。ここで画像や着信音へのパスを保存することはできますが、正確にはお勧めできません。つまり、できるということですが、おそらくそうすべきではありません。
Core Dataは、非常にスケーラブルでパフォーマンスが非常に優れているため、これらのパスの多くを保存することを計画している場合は、はるかに優れたアプローチです。したがって、全体として、大量のデータを保存する必要がある場合は、ユーザーCore Dataを使用するか、別の方法として、パスをドキュメントディレクトリのplistに保存します。
于 2012-12-20T21:44:11.857 に答える