0

我的表格视图单元格中有一个UITextField。在 Edit I am doing[tableview setEditing:YES]和 Done的 tableview 类中[tableview setEditing:NO]

正如我- (void)setEditing:(BOOL)editing animated:(BOOL)animated在 tableview 单元格中一样,我正在使用这种方法。

按下完成按钮后,它在线崩溃[tableview setEditing:NO]并显示:

*** -[mycell _setEditingStyle:]: message sent to deallocated instance 0x8d401b0

看到po 0x8d401b0之后就是给*** -[mycell respondsToSelector:]: message sent to deallocated instance 0x8d401b0

如何解决此崩溃?

代码 :

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [super setEditing:editing animated:animated];
    if(editing)
    {
        [self editModeActivated];
    }
    else 
    {   
        [self editModeDeactivated];
    }
}

rowatindexpath 的单元格:

static NSString *identifier=@"cell";
mycell *cell = (mycell *)[tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) 
{
    cell = [[mycell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; 
}

和单元格的初始化代码

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [[[NSBundle mainBundle] loadNibNamed:@"mycell" owner:self options:nil] objectAtIndex:0];
    if (self) {
        // Initialization code
        [self customIntialization];
    }
    return self;
}
4

2 回答 2

0

如果您在外部检查 tableviewcontroller 编辑属性,您可能需要在表格显示之前重新加载表格。

于 2014-02-17T03:38:49.403 回答
0

得到解决方案我只需要在设置 [tableview setEditing:NO] 之前重新加载表格。在完成方法中

于 2013-05-29T10:35:38.620 回答