如果我有如下一個的viewController設置:內存管理&viewDidUnload?
@interface MapViewController : UIViewController <MKMapViewDelegate, CLLocationManagerDelegate> {
CLLocationManager *locationManager;
}
-(void)viewDidLoad {
[super viewDidLoad];
locationManager = [[CLLocationManager alloc] init];
}
,當涉及到內存管理,我應該將釋放兩個viewDidUnload & dealloc的?
-(void)viewDidUnload {
[locationManager release];
locationManager = nil;
[super viewDidUnload];
}
-(void)dealloc {
[locationManager release];
[super dealloc];
}
歡呼加里
編輯:
[超級的dealloc]移至底部按院長類的意見。
只要注意 - 你應該把[超級dealloc]作爲_last_行在你的dealloc方法中。否則,當您嘗試釋放locationManager時,您可能會遇到崩潰,因爲內存可能已經被另一個對象使用。 (非常不可能,但需要注意的地方) – deanWombourne 2010-06-01 14:44:16
謝謝Dean,我的錯誤,但需要記住的好,再次感謝。 – fuzzygoat 2010-06-01 15:16:52
@dean:如果尚未發佈locationManager,那麼locationManager的內存如何用於另一個對象? (指發佈的原始代碼) – progrmr 2010-06-01 16:54:36