一、O-C當中的內存釋放,並不是像java/.net那樣有一個自動的釋放池,開發人員不用去關心有關內存釋放的問題,O-C里面的自動釋放池比c語言的手動內存管理要好一些,但是相對於java/.net來說又弱一些,所以說O-C當中的釋放屬於半自動的釋放池。
二、什么是自動釋放池
1、Autorelease pool
自動釋放池(Autorelease pool)是OC的一種內存自動回收機制,可以將一些臨時變量通過自動釋放池來回收統一釋放
自動釋放池本事銷毀的時候,池子里面所有的對象都會做一次release操作
2、autorelease
任何OC對象只要調用autorelease方法,就會把該對象放到離自己最近的自動釋放池中(棧頂的釋放池)。
三、如何創建一個自動釋放池
//ios5.0新方式
@autoreleasepool
{
}
//ios5.0之前的老方式
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc]init];
[pool release];
四、自動釋放池如何釋放對象內存
黃金法則:如果對一個對象使用了alloc,[mutable]copy,retain,那么必須使用相應的release或者autorelease.
五、自動釋放池棧式結構管理
自動釋放池原理:

自動釋放池的原理類似於一個數組的原理,我們每調用一個autorelease就會有個對象掛到內存中去,系統里面就會根據這個池子銷毀的時候把池子里面的內容全部銷毀。
