objective-c - 我的模式对话框崩溃了(Cocoa)

标签 objective-c cocoa modal-dialog

如果我在 windowWillClose: 中有释放的代码,下面的代码就会崩溃 我的 MyWindowController,否则它工作正常。

我在 Mac OS 10.6.8 上测试了它。 我正在使用 XCode 3.1.3。

我做错了什么?

在我释放 MyWindowController 之前,窗口似乎没有被释放, 因为它在 NSTableView 方法中崩溃。

我的按钮处理程序调用[NSApp stopModalWithCode:0];

MyDialog()
{
    MyWindowController* controller = [[MyWindowController alloc] init];
    [controller showWindow:controller];
    NSWindow* window = [controller window];
    [NSApp runModalForWindow:window];
    [window close];
}

在我的 MyWindowController 中:

- (void)windowWillClose:(NSNotification*)notification 
{
    [self autorelease];
}

最佳答案

您正在 windowWillClose 中释放“self” - 这似乎是错误的。

类似的事情肯定应该在 dealloc 中完成吗?

-(void)dealloc
{
  [super dealloc];
}  

此外,在最初分配 Controller 时,您可能会更好地自动释放 Controller ?

关于objective-c - 我的模式对话框崩溃了(Cocoa),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7400645/

相关文章:

ios - UISearchBar 在导航栏下方的动画不正确

MACOSX - 如何自定义 IKImageBrowserView 以在每个项目上添加 NSButton?

cocoa - 使用 cocoa 绑定(bind)在 Collection View 中的 Web View 上显示网页

objective-c - NSWindow 打开时运行方法?

javascript - 模态函数不显示模态

java - 在 Custom BottomSheetDialog Android 中添加菜单

ios - 从键为空字符串的 NSDictionary 中删除值

ios - 收到 SUbiquity Identity DidChangeNotification 后我应该做什么?

iOs 模态转换,如 Mailboxapp

iPhone : Upload video to Youtube while running app in device