私は文書ベースのアプリケーションを持っており、サブクラスはNSDocument
であり、必要なメソッドを提供していますが、私の文書には大規模なクリーンアップ(外部タスクの実行など)が必要です。これを置くのに最適な場所はどこですか?私はdealloc
に入れた場合、それは時々、それが呼び出されると、他の回、NSDocumentサブクラスのクリーンアップコードはどこにありますか?
close
close:
canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo
dealloc
:私は、次のようないくつかの異なる方法を試してみました(Command + Qを押すとドキュメントの割り当て解除をバイパスするように見える)が、このコードはfaiなしで呼び出されることが必須ですルアー(プログラムが突然終了しない限り)
私はshouldCloseSelectorでクリーンアップを行うべきです。なぜなら、ドキュメントが閉じられる準備が整った(例えば、正常に保存された)場合にのみshouldCloseSelectorが呼び出されるからです。このcanCloseメソッドが呼び出されても、ドキュメントが実際に閉じられることは示されません(たとえば、保存が失敗する可能性があります)。 – Joel