我有一个空的main()函数的项目。
只需将框架链接到我的项目(例如 ImageIO.framework ),仪器会在关闭我的应用程序后列出未释放的内存分配。
1)我可以在由Apple Frameworks创建的Instruments中隐藏持久性内存分配,这样我可以专注于内存泄漏吗?
2)这是否意图是因为Apple知道操作系统事后会清理?
答案 0 :(得分:1)
关于1 - 选择"所有堆分配"在分配类型(而不是所有堆和匿名VM)。
关于2 - 即使Apple有一些内存泄漏......但是,它会在应用程序关闭后释放。
答案 1 :(得分:1)
1)您可以是由框架创建的对象的所有者。阅读Instruments User Guide, Find Memory Leaks。
2)是的。可以重复使用的单身人士和对象,如NSColorPanel
,不会被解除分配。此外,在不清理的情况下退出应用程序会更快。例如,从NSManagedObject
的文档:" Core Data不保证在所有场景中都会调用dealloc(例如当应用程序退出时)"。