0

私のアプリでは、カスタム セルを含む tableView があります。これは、カスタム セルの .h です。

    @interface TableViewCell : UITableViewCell{

    IBOutlet UILabel *prod;
    IBOutlet UIImageView *back;
}

@property (nonatomic, retain) IBOutlet UILabel *prod;
@property (nonatomic, retain) IBOutlet UIImageView *back;

そしてそれは.mです

@implementation TableViewCell

@synthesize prod, back;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
    }
    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

- (void) dealloc{
    [super dealloc];
    [prod release];
    [back release];
}


@end

私のtableViewのデリゲートメソッドには、これがあります

- (void)tableView:(UITableView *)tableView commitEditingStyle...

しかし、tableView の最後の行を削除すると、ここに EXC_BAD ACCESS があります。

- (void) dealloc{
    [super dealloc];
    [prod release];
    [back release]; <-- for this I have a EXC BAD ACCESS
}

なぜ?

4

1 に答える 1

1

[super dealloc]メソッドの最後に呼び出す必要がありますdealloc

さらに、プロパティを持っているので、それらを利用してください。それらに直接割り当てnilを解放する代わりに:

- (void)dealloc
{
    self.prod = nil;
    self.back = nil;
    [super dealloc];
}
于 2012-07-31T09:06:41.773 に答える