2012-06-29 32 views
0

我得到的總是這個錯誤,當我關閉我的應用程序的最後一個窗口:核心數據:崩潰時,最後一個窗口被關閉

特定應用信息:objc_msgSend()選擇名稱: respondsToSelector:objc [42729] :垃圾收集是OFF

線程0墜毀::調度隊列:com.apple.main線程0
libobjc.A.dylib 0x00007fff8cc9a15​​0 objc_msgSend_vtable5 + 16 1 com.apple.AppKit 0x00007fff8fbca814 - [的NSApplication supplementalTargetForAction:發送方:] + 63 2 com.apple.AppKit 0x00007fff8 fab91e4 _objectFromResponderChainWhichRespondsToAction + 155 3 com.apple.AppKit 0x00007fff8fab8feb _NSTargetForSendAction + 3255 4 com.apple.AppKit 0x00007fff8fab832f - [的NSApplication targetForAction:爲:從:] + 682 5 com.apple.AppKit 0x00007fff8fab7e00 - [NSMenu _enableItem:] + 403

我承認文檔筆尖有兩個窗口。我想要關閉「輔助窗口」並在主窗口關閉時釋放。我應該怎麼做?也許這些錯誤com從這裏...我使用核心數據和ARC。

Regards

+1

你試過殭屍嗎? –

+0

我試過器械/殭屍。這個小流氓軟件是一個NSTableColumn,由應用程序定位。但是我怎麼能知道更多?什麼專欄,進入什麼窗口?爲什麼最後一個窗口(其他人關閉沒有錯誤)? – berfis

回答

0

我發現了一些似乎可以解決問題的東西。但我不明白髮生了什麼,我真的不喜歡這個。

在IB中,文件的所有者具有指向文檔窗口的「窗口」出口;但沒有@property NSWindow窗口;在NS(持久性)文檔的默認代碼中。

我不得不讓面板成爲文檔主窗口的「子窗口」,所以我添加了@property NSWindow mainWindow。新的「mainWindow」插座指向與「窗口」插座相同的窗口。

突然沒有更多的崩潰,沒有更多的殭屍。發生了什麼?我很困惑。

反射之後:我添加了一個指向文檔窗口的指針,所以ARC計數器永遠不會達到零。我想我在NSDocument的_window處有一個缺失的引用,現在我的出口已經對它進行了平衡。