2013-03-04 14 views
5

Appleのドキュメントには、NSUserDefaultsは自動終了を安全に処理しますか?

NSUserDefaultsを言う一時的にデフォルトを含む設定ファイルがディスクに書き込まれた時にデフォルトで設定された時間と時間の間に、プロセスの殺害を防ぐために、突然終了を無効にします。

自動的に終了する可能性があると思われる場合(たとえば、アプリケーションが非表示になった場合)、手動で自動終了するか、synchronizeにする必要がありますか?

+0

編集内容は高く評価され改善されましたが、査読者は私が承認する前に撃墜しました。別のショットをつけますか? –

+0

@Catfish_Manあなたの答えにジョーの編集を作り直しました。おかげさまで –

+0

Shame Joeはそれについて信用を得ていませんでしたが、少なくとも今はそこにあります:) –

答えて

1

自動終了のために特に必要なことはありません。その理由は、自動終了が⌘Qとは異なる動作をしないためです(突然終了が有効になっていない場合は-[NSApp terminate:]が呼び出されます)。NSUserDefaultsは既に⌘Qを処理しています。

Apple's 2011 WWDC presentation on automatic termination(登録が必要、開始日は約34:00)より詳しい情報があります。

+0

これは本当にうれしいことですが、ドキュメントで何も確認できません。非常に恐ろしい "システムは*いつでも自動終了可能なアプリケーション*のための基になるプロセスを殺す*ことができます*"。 –

+0

一言...私は文書を修正するためにレーダーを提出する必要があると思う。 「Resume&Automatic Termination」というWWDCの講演でより良い情報が得られます。また、デバッガで自分で確認することもできます。 - [NSApplication terminate:]にブレークポイントを設定し、すべてのウィンドウを閉じてスイッチを切り、メモリの負荷を引き出します。 –

+0

(私は、文書のそのビットを書いた人は少し過激で、突然の終了と自動終了の違いについて混乱していると思う) –

関連する問題