我在UILabel
本地创建了一个并将其添加subview
到我的视图中。出现以下问题:1)执行"Analyze"
编译器显示a "incorrect decrement of the reference count of the object"
2)我观察到保留计数不为零。这是我的代码:
-(UILabel*)createLabel:(CGRect)rect labelText:(NSString *)labelText {
UILabel *label = [[UILabel alloc] initWithFrame:rect];
label.text = labelText;
return label;
}
- (void)initMyView {
UILabel *label = [self createLabel:rect labelText:circuitName];
NSLog(@"before using %d", [label retainCount]);
[self.heatingCircuitsScrollView addSubview:label];
NSLog(@"before release %d", [label retainCount]);
[label release];
NSLog(@"After release %d", [label retainCount])
}
我在控制台中得到以下信息:
使用前 1 发布前 2 发布后 1
我知道在"createlabel"
方法上使用 Autorelease 可以解决问题。我想知道哪个是最好的方法,以及如何在将对象添加到子视图后释放它。