Если у меня есть установка 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];
}
веселит Gary
EDIT:
[супер dealloc] переместили вниз, как на деканов любезного комментарий.
Только что заметили - вы должны положить [super dealloc] как строку _last_ в свой метод dealloc. В противном случае вы можете получить сбой при попытке освободить locationManager, потому что память уже может использоваться с другого объекта. (Очень маловероятно, но кое-что, чтобы следить за) – deanWombourne
Спасибо, Дин, моя ошибка, но хорошая, чтобы иметь в виду, еще раз спасибо. – fuzzygoat
@dean: Как память locationManager может использоваться для другого объекта, если вы еще не выпустили его? (ссылаясь на исходный код) – progrmr