刪除窗口,我有一個屬性:可可ARC:從內存
@property (strong, nonatomic) NSWindow *window;
而且在我的實現,我有兩個方法,啓動和停止。
啓動函數創建像這樣(部分代碼)的新窗口:
_window = [[NSWindow alloc] initWithContentRect:screenRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
停止功能關閉,像這樣的窗口:
[_window orderOut:self];
[_window close];
//_window = nil;
不過,我得到一個EXC_BAD_ACCESS錯誤,當我第二次執行啓動功能(啓動,然後停止,然後重新啓動)。
這發生在NSWindow的alloc語句中。
我需要做些什麼來確保新窗口被正確創建?
編輯:一些更多的測試後,它出現在錯誤無關與ALLOC初始化呼叫。如果我在此之前,添加以下行:
NSLog(@"%@", _window);
在第一個電話開始,這將導致輸出「空」,則調用後停止()和新的呼叫開始,我會得到NSLog行上出現EXC_BAD_ACCESS錯誤。
即使只是設置_window =零;在停止方法中(調用[_window close];之後)會導致訪問錯誤。
沒有回溯,沒有人可以幫你。當然不是沒有更多的上下文。 – bbum