일반적으로 개체를 만들고이를 인스턴스 변수에 할당 할 때 임시 개체를 할당하고 개체를 유지하려면 iVar 설정자를 호출 한 다음 임시 개체를 해제하십시오. 그러나 나는 오늘 아침에 init을보고 있었고, 단순히 iVar를 직접 할당하면 setter가 호출되거나 dealloc이 실행될 때 올바르게 해제되는 동안 alloc에 의해 유지된다는 사실을 알았습니다. 이 문제를 올바르게 이해하고 있는지 궁금합니다.메모리 관리 및 인스턴스 변수?
@property(nonatomic, retain) CLLocationManager *locationManager;
.
@synthesize locationManager;
// VERSION 001
- (id)init {
self = [super init];
if(self) {
CLLocationManager *tempManager = [[CLLocationManager alloc] init];
[self setLocationManager:tempManager];
[tempManager release];
}
return self;
}
// VERSION 002
- (id)init {
self = [super init];
if(self) {
locationManager = [[CLLocationManager alloc] init];
}
return self;
}
- (void)dealloc {
[locationManager release];
[super dealloc];
}
대단히 감사합니다. 매우 감사드립니다. – fuzzygoat