嘿嘿!
我有一个小应用程序作为 LSUIElement
运行,并带有 NSStatusItem
。
有时弹出菜单的菜单项会由代码更新。但是,当更新的 NSMenuItem(或其 super 菜单)“突出显示”时,应用程序会崩溃而不会记录任何内容。
你有什么想法吗?非常感谢您的回答。
最佳答案
您能在 gdb 中运行时重现崩溃吗? Gdb 在命令行中工作得很好,我经常在命令行中通过 gdb 运行 GUI 应用程序来捕获间歇性崩溃。
一旦在 gdb 中崩溃,请使用 bt
命令获取崩溃位置的回溯。
这种性质的崩溃(间歇性的)几乎总是由内存损坏、不正确的线程或过度释放对象引起。查看您的代码并确保您遵循 Cocoa 内存管理指南。如果您使用线程,请确保您没有从非主线程中不当欺骗 UI 对象。
关于cocoa - 更新突出显示的 NSMenuItem 时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1316884/