私のメイン アプリケーション ( MyApp
) では、ウィンドウ コントローラー ( ) の新しいインスタンスを作成することにより、プログラムで他のウィンドウを作成しますMyWindowController
。ウィンドウ コントローラが初期化されると、 を呼び出して nib ファイルからウィンドウと他のビュー/オブジェクトをロードします[self.window makeKeyWindow]
。awakeFromNib
これらのオブジェクトの 1 つのメソッド ( )MyModel
には、(名前解決が原因で) 失敗する可能性のあるコードがいくつかあります。ユーザーにエラーを表示し、ウィンドウ コントローラー、ウィンドウ、およびすべての関連オブジェクトを破棄したいと考えています。 .
要約すれば:
- アプリケーションは の新しいインスタンスを作成します
MyWindowController
。 MyWindowController
を呼び出して、nib ファイルからウィンドウと他のビュー/オブジェクトをロードします[self.window makeKeyWindow]
。awakeFromNib
これらのオブジェクトの 1 つ ( のインスタンス)MyModel
でエラーが発生しました (名前解決による)。- ユーザーにエラー メッセージが表示され、
MyWindowController
、MyModel
、および関連する他のすべてのインスタンスが破棄されます。
最もココア風の方法でステップ 4 を達成するにはどうすればよいでしょうか?
明確にするために、を使用してユーザーにエラーを表示する方法を知っていますNSError
。でエラーを処理するための推奨/正しい方法が、エラーawakeFromNib
を表示して 内からすべてを解放することでawakeOnNib
あるか、それともより良い方法があるか (アプリの再構築が必要になる場合があります) を調べようとしています。