心得:從前做內存釋放,只是覺得應該,沒體會到這個的重要性,如果不及時釋放就會有很多內存泄露,就像我早期遇到的前赴后繼的崩潰,比如:沒使用完,就釋放會崩潰等明顯的release問題。
作為全局的變量釋放 ,要按棧的順序釋放。否則又不知何時會崩潰。
雖然現在有自動控制釋放機制了,但是本人也覺得有必要知道這些方法,畢竟代碼更新、兼容什么的仍然還要考慮到內存問題的。
Objective-c 語言中最頭疼的事就是內存釋放,申明一個變量后記得一定要釋放這個變量,我們定義的全局變量都是在 - (void)dealloc 函數中釋放的;
里面繼承了一個[super dealloc]方法,
有些同學平時自己釋放內存都是寫在 [super dealloc]的后面,但是在Objective-c 中不能這樣寫,所有的釋放都必須寫在 [super dealloc]的前面。
-------錯誤的寫法--------
- (void)dealloc
{
[super dealloc];
[XXX release];
......
}
-------正確的寫法--------
- (void)dealloc
{
[XXX release];
[super dealloc];
......
}
原
因是:“你所創建的每個類都是從父類,根類繼承來的,有很多實例變量也會繼承過來,這部分變量有時候會在你的程序內使用,它們不會自動釋放內存,你需要調
用父類的 dealloc方法來釋放,然而在此之前你需要先把自己所寫類中的變量內存先釋放掉,否則就會造成你本類中的內存積壓,造成泄漏”.不過在IOS6有了ARC后就不用手動去釋放了,也沒有此函數了!