0

当我关闭应用程序的最后一个窗口时,我总是会收到此错误:

应用程序特定信息:objc_msgSend() 选择器名称:responsToSelector:objc[42729]:垃圾收集关闭

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0
libobjc.A.dylib 0x00007fff8cc9a15​​0 objc_msgSend_vtable5 + 16 1 com.apple.AppKit 0x00007fff8fbca814 -[NSApplication supplementalTargetForAction:sender:] + 63 2 com.apple.AppKit 0x00007fff8fab91e4 _objectFromResponderChainWhichRespondsToAction + 155 3 com.apple.AppKit 0x00007fff8fab8feb _NSTargetForSendAction + 3255 4 com.apple.AppKit 0x00007fff8fab832f -[NSApplication targetForAction:to:from:] + 682 5 com.apple.AppKit 0x00007fff8fab7e00 -[NSMenu _enable]

我承认文档笔尖有两个窗口。我希望在关闭主窗口时关闭并释放“辅助窗口”。我应该怎么做?也许这些错误来自这里……我正在使用 Core Data 和 ARC。

问候

4

1 回答 1

0

我发现了一些似乎可以解决问题的东西。但我不明白发生了什么,我真的不喜欢这个。

在 IB 中,文件的所有者有一个指向文档窗口的“窗口”出口;但是没有@property NSWindow 窗口;在 NS(Persistent)Document 的默认代码中。

我不得不让一个面板成为文档主窗口的“子窗口”,所以我添加了一个@property NSWindow mainWindow。新的“mainWindow”出口指向与“window”出口相同的窗口。

突然间不再有崩溃,不再有僵尸。发生了什么?我很困惑。

经过反思:我添加了一个指向文档窗口的指针,因此 ARC 计数器永远不会达到零。我想我在某处缺少对 NSDocument 的 _window 的引用,现在由我的插座平衡。

于 2012-06-29T19:43:44.630 回答