2013-02-11 61 views
1

我有一個展示窗口,一些代碼...顯示程序化的窗口中使用ARC(EXC_BAD_ACCESS)第二次崩潰

- (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 ...

我到底做錯了什麼?在你的代碼

在此先感謝....

回答

5

您可以設置「releasedWhenClosed爲YES。它改成NO,它應該工作的罰款。

+0

我不使用IB創建窗口壽如 – Equinox2000 2013-02-11 05:23:30

+0

@ Equinox2000,是的,我注意到並編輯了我的答案 – rdelmar 2013-02-11 05:24:05

+0

偉大的工作現在:),不知道爲什麼它確實覆蓋一個對象(釋放或沒有)與一個新的應該是好的我想覆蓋物體弧試圖釋放你已被覆蓋的對象或這些行上的內容。 – Equinox2000 2013-02-11 05:29:50

相關問題