在Objective-C中,使用引用计数来管理对象。autorelease pool是用来管理内存资源的,它可以包含多个autorelease对象,当pool被释放时,其中所有被加入到pool的对象的引用计数都会递减一。通俗的说,autoreleasepool是一个可以自动管理内存的容器,在其中加入的对象会自动在适当的时候释放。我们可以通过@autoreleasepool关键字来创建一个autoreleasepool,用完后,自动释放其中的对象,避免内存泄漏。
autorelease pool的作用域一般是当前的方法内部。如果一个对象需要在多个方法内部使用,一般要将其放在外面的变量中,同时,在外面的变量使用后也要加入到autoreleasepool中。
使用autoreleasepool不会影响程序性能,甚至有可能会提升性能。因为autoreleasepool可以帮助我们在合适的时机及时释放不再使用的内存,避免内存泄漏和内存溢出。