1
にコードがあり、私のMyWindowControllerを にリリースすると、以下のコードがクラッシュします。私のモーダルダイアログがクラッシュする(ココア)
Mac OS 10.6.8でテストします。 私はXcode 3.1.3を使用しています。
どうしたのですか?
NSTableView
メソッドでクラッシュするため、MyWindowControllerを解放する前にウィンドウが廃棄されていないようです。
マイボタンハンドラは、私のMyWindowControllerで[NSApp stopModalWithCode:0];
MyDialog()
{
MyWindowController* controller = [[MyWindowController alloc] init];
[controller showWindow:controller];
NSWindow* window = [controller window];
[NSApp runModalForWindow:window];
[window close];
}
を呼び出します。
- (void)windowWillClose:(NSNotification*)notification
{
[self autorelease];
}
私はこれにコードを変更し、今では動作します。私は比較的新しいCocoaプログラミングです。なぜ私のテーブルビューアウトレットが自動的に切断されないのかわかりません。ウィンドウコントローラを解放する前に、ウィンドウコントローラからテーブルビューのデータソースを手動で切断する必要がありました。 ' - (void)windowWillClose:(NSNotification *)通知 { \t [tableView setTarget:nil]; \t [tableView setDelegate:nil]; \t [tableView setDataSource:nil]; \t [self autorelease]; } ' –