核心数据:最后一个窗口关闭时崩溃



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

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

线程 0 崩溃:: 调度队列: com.apple.main-thread 0
利博杰克。A.迪利布0x00007fff8cc9a150 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 _enableItem:] + 403

我承认文档笔尖有两个窗口。我希望在主窗口关闭时关闭和释放"辅助窗口"。我该怎么办?也许这些错误是从这里来的...我正在使用Core Data和ARC。

问候

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

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

必须使面板成为文档主窗口的"子窗口",因此我添加了@property NSWindow mainWindow。新的"主窗口"插座指向与"窗口"插座相同的窗口。

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

反射后:我添加了指向文档窗口的指针,因此 ARC 计数器永远不会达到零。我想我在某处缺少对 NSDocument _window的参考,现在我的出口平衡了它。

最新更新