通常、オブジェクトを作成してインスタンス変数に代入すると、tempオブジェクトを割り当てます。オブジェクトを保持するためにiVarセッターを呼び出し、tempオブジェクトを解放します。しかし、私は今朝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