我有一个 UITableViewCell 的子类,它在遇到 [super dealloc] 行时崩溃。我的单元格中有几个文本字段,错误消息是*** -[UITextField release]: message sent to deallocated instance 0x739dfd0
相关的代码片段如下(我确实有其他文本字段,但它们都以相同的方式处理。我怀疑它与将其添加到单元格的 contentView 有关。但我不知道如何更正它。
自定义 UITableViewCell 的 .h 文件:
@interface ExerciseTableViewCell : UITableViewCell {
UITextField *textField1;
}
@property (nonatomic, retain) UITextField *textField1;
@end
.m 文件:
@implementation ExerciseTableViewCell
@synthesize textField1;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
UIView *myContentView = self.contentView;
UITextField *newTextField1 = [[UITextField alloc] init];
self.textField1 = newTextField1;
[newTextField1 release];
[myContentView addSubview:textField1];
}
return self;
}
}
- (void)dealloc {
[textField1 release];
[super dealloc];
}
我不明白为什么我会多次释放 textField?