第二次使用ARC显示程序窗口崩溃(EXC_BAD_ACCESS)

时间:2013-02-11 05:13:21

标签: cocoa

我有一些显示窗口的代码......

- (IBAction)displayWindow:(id)sender
{
    NSWindow *window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 50, 50) styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
    [window setBackgroundColor:[NSColor blackColor]];
    [window setAlphaValue:.5];
    [window setLevel:kShadyWindowLevel];
    [window setReleasedWhenClosed:YES];
    [window makeKeyAndOrderFront:self];
    self.window = window;
}

关闭窗口......

- (IBAction)closeWindow:(id)sender
{
    [self.window close];
}

和窗口被定义为强大的属性......

@property (strong) NSWindow *window;

代码第一次工作,但第二次显示窗口时......

self.window = window;

与EXC_BAD_ACCESS崩溃...

我做错了什么?

提前致谢....

1 个答案:

答案 0 :(得分:5)

在代码中设置“releasedWhenClosed为YES。将其更改为NO,它应该可以正常工作。