此问题针对macOS Objective-C开发。但是,这也可能适用于Swift。处理NSMenu
尤其是NSStatusBar
图标时,我注意到一种内存泄漏。您可以使用其他问题NSStatusBar menu bar icon NSMenu leaking CFData中的相同示例项目。
打开状态栏菜单后,内存使用量立即增加大约2 Mb(此处不涉及)。在XCode中打开Debug Navigator
,然后开始将鼠标光标移到打开的状态栏菜单上。快速执行几秒钟会增加内存消耗。遗憾的是,即使关闭菜单后,该内存也不会释放。
我非常好奇,到底是什么导致了这种增加,如何阻止这种增加的发生?对于这个很小的菜单,这可能不是问题,但是,对于包含许多项的菜单而言,它的上升速度很快。