框架导致macOS中的内存泄漏

时间:2017-02-02 21:47:02

标签: c++ objective-c memory-leaks garbage-collection instruments

我有一个空的main()函数的项目。

只需将框架链接到我的项目(例如 ImageIO.framework ),仪器会在关闭我的应用程序后列出未释放的内存分配。

Xcode Instruments

1)我可以在由Apple Frameworks创建的Instruments中隐藏持久性内存分配,这样我可以专注于内存泄漏吗?

2)这是否意图是因为Apple知道操作系统事后会清理?

2 个答案:

答案 0 :(得分:1)

关于1 - 选择"所有堆分配"在分配类型(而不是所有堆和匿名VM)。

关于2 - 即使Apple有一些内存泄漏......但是,它会在应用程序关闭后释放。

答案 1 :(得分:1)

1)您可以是由框架创建的对象的所有者。阅读Instruments User Guide, Find Memory Leaks

2)是的。可以重复使用的单身人士和对象,如NSColorPanel,不会被解除分配。此外,在不清理的情况下退出应用程序会更快。例如,从NSManagedObject的文档:" Core Data不保证在所有场景中都会调用dealloc(例如当应用程序退出时)"。