我刚刚熟悉了 CLLocationManager,发现了几个包含以下 init 方法的示例类定义:
- (id) init {
self = [super init];
if (self != nil) {
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.delegate = self;
}
return self;
}
- (void)dealloc {
[self.locationManager release];
[super dealloc];
}
我不明白为什么 iVar 会自动发布。这是否意味着它在 init 方法结束时被释放?
我也很困惑地看到相同的示例代码在 dealloc 方法中具有 iVar 版本。
有什么想法吗?'