<分区>
我看了很多关于@autorelease pool的博客,但是我仍然不清楚在objective c或ios开发中这个@autorelease pool的概念。
所以任何人都可以阐明这个概念。 如果有人能给我提供一个示例以及何时需要使用@autorelease pool,那将对我非常有帮助。
如何使用@autorelease pool 和不使用它来测量内存分配。
请说明这个主题可能是重复的。
<分区>
我看了很多关于@autorelease pool的博客,但是我仍然不清楚在objective c或ios开发中这个@autorelease pool的概念。
所以任何人都可以阐明这个概念。 如果有人能给我提供一个示例以及何时需要使用@autorelease pool,那将对我非常有帮助。
如何使用@autorelease pool 和不使用它来测量内存分配。
请说明这个主题可能是重复的。
最佳答案
Release 和Autorelease 是内存管理相关的术语。每当您拥有一个对象时,您就有责任释放它。如果你没有正确地释放它,Objective-C 不能回收它以供其他对象使用,就会出现内存泄漏。
拥有对象的不同方式是 alloc、new、retain 和 copy 每当你使用这个东西时,尝试释放它,这样 Objective C 就会小心地破坏那个对象。如果您不确定是否释放该对象,请确保执行自动释放。
每当你对一个对象进行自动释放时,如果对象没有以正确的方式释放,它就会被添加到 main 函数中的 Autoreleasepool 中。 main 函数中的 Autoreleasepool 会维护一堆待释放的对象,当调用“drain”方法时,它们会一个一个释放,例如:[pool drain]。在每个事件循环结束时重复调用 Drain 方法。
关于ios - 为什么以及什么时候我们需要在ios项目中使用@autoreleasepool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36856747/