Shared User Defaults Controller を使用する環境設定ペインがあります。これにより、環境設定の読み取りと保存が簡単になります。ただし、フィールドに変更が加えられた場合、それらはすぐに plist ファイルに保存されないようです。これにより、変更が行われた直後にアプリケーションがファイルを再読み取りする必要があり、plist がまだ更新されていない場合に問題が発生します。
環境設定ペインで環境設定ファイルをすぐに更新するにはどうすればよいですか?
Shared User Defaults Controller を使用する環境設定ペインがあります。これにより、環境設定の読み取りと保存が簡単になります。ただし、フィールドに変更が加えられた場合、それらはすぐに plist ファイルに保存されないようです。これにより、変更が行われた直後にアプリケーションがファイルを再読み取りする必要があり、plist がまだ更新されていない場合に問題が発生します。
環境設定ペインで環境設定ファイルをすぐに更新するにはどうすればよいですか?
これにより、すぐに行った変更が自動的にディスクに保存されます。
NSUserDefaultsController *controller = [NSUserDefaultsController sharedUserDefaultsController];
[controller setAppliesImmediately:YES];
特定の場合にのみこれが必要な場合は、高価な I/O の一部を使用して保存することもできます (すべてをすぐにディスクに書き込むのではなく、キャッシュ メカニズムに可能な限りキャッシュさせるようにしてください)。
NSUserDefaultsController *controller = [NSUserDefaultsController sharedUserDefaultsController];
[controller save:self];
また、正しい問題を解決しようとしていると確信していますか? NSUserDefaults
現在のバージョンが RAM にキャッシュされているか、既にディスクに書き込まれているかを気にする必要がない場所を照会することで、常にユーザーのデフォルトの最新バージョンを取得できます。
ドキュメントごと:
[userDefaults save:self];
また
[userDefaults setAppliesImmediately:YES];