This question already has answers here:
How does the NSAutoreleasePool autorelease pool work?

(7个答案)


4年前关闭。




我已经阅读了很多有关@autorelease池的博客,但是我仍然不清楚 objective-c 或ios开发中的@autorelease池概念。

因此,任何人都可以对这个概念有所了解。
如果有人可以向我提供示例,以及何时需要使用@autorelease池,这对我将非常有帮助。

如何使用@autorelease池和不使用@autorelease池来测量内存分配。

如果该主题重复,请说明一下。

最佳答案

发布和自动发布是与内存管理相关的术语。每当您拥有对象时,都有责任释放它。如果您没有正确释放它,Objective -C将无法回收它以供其他对象使用,并且会发生内存泄漏。

拥有对象的不同方法是alloc,new,remain和copy。无论何时使用此东西,都应尝试释放它,以便Objective C会小心处理该对象。如果不确定要释放该对象,请确保执行自动释放。

每当您执行对象的自动释放时,对象就不会以正确的方式释放,它将被添加到主功能的自动释放池中。主要功能中的自动释放池将维护一堆要释放的对象,当调用“排放”方法时,它们将被一个接一个地释放,例如:[池排放]。在每个事件循环结束时,都会重复调用Drain方法。

10-01 19:47