2010年3月9日 星期二

iPhone 開發技巧(1) release 的使用

一般而言,iPhone開發的時候要自己管理記憶體,雖然可以使用autorelease pool來讓Objective-C自動回收,但大多數的程式設計師還是喜歡自己掌控變數的生死,因此就會使用到大量的release方法。
例如:
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"A", @"B", @"C", nil];
[array release];

但是如果你的變數是從其他物件指定(assign)過來的話,又在指定完直接給它release的話,就會產生EXC_BAD_ACCESS的錯誤(前提是這個變數在原本物件也有被release)。而常常程式設計師在寫的昏天暗地的時候就會搞混(所以人家都說管理記憶體是一件很煩的事情),所以請記住一個口訣:
“Only release if you did an alloc, new, copy, or retain“.
“只在使用過 alloc, new, copy, or retain 來產生變數之後進行release.“
只要依照這個原則一行一行的檢閱你的程式,應該就沒有太大問題了。

沒有留言:

張貼留言