UILabel
をローカルに作成subview
し、ビューに として追加しました。次の問題が発生します。1)"Analyze"
コンパイラを実行すると、"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
メソッドで Autorelease を使用"createlabel"
すると問題が解決することはわかっています。サブビューに追加されたオブジェクトを解放する最良の方法と方法を知りたいです。