Ios -[UItableviewcell\u setEditingStyle:]:发送到解除分配实例的消息

Ios -[UItableviewcell\u setEditingStyle:]:发送到解除分配实例的消息,ios,objective-c,cocoa-touch,uitableview,Ios,Objective C,Cocoa Touch,Uitableview,我的tableview单元格中有一个UITextField。在编辑时的tableview类中,我正在执行[tableview设置编辑:是]和完成时的[tableview设置编辑:否] 我在tableview单元格中使用了-(void)setEditing:(BOOL)editing animated:(BOOL)animated 按下“完成”按钮后,它将在第[表视图设置编辑:否]行崩溃,并显示: *** -[mycell _setEditingStyle:]: message sent to d

我的tableview单元格中有一个
UITextField
。在编辑时的tableview类中,我正在执行
[tableview设置编辑:是]
和完成时的
[tableview设置编辑:否]

我在tableview单元格中使用了
-(void)setEditing:(BOOL)editing animated:(BOOL)animated

按下“完成”按钮后,它将在第
[表视图设置编辑:否]
行崩溃,并显示:

*** -[mycell _setEditingStyle:]: message sent to deallocated instance 0x8d401b0
在看到
po 0x8d401b0
后,它给出了
***-[mycell respondsToSelector::]:发送到解除分配实例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;
}

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

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

您能发布UITableView数据源的tableView:CellForRowatineXpath:method的代码吗?您的init方法看起来真的很疯狂。单元重用不适用于此代码。为什么它不能按照ios 5文档工作?它是基本的。我们可以这样访问单元。这根本不是标准。如果从未使用重用标识符,那么重用应该如何工作。您不应该使用样式:reuseIdentifier:
来弯曲被覆盖的
initWithStyle:reuseIdentifier:
以从nib加载内容。它应该称之为超级实现。但是我没有足够的资源来教你如何在评论中正确处理UITableView(单元格)。你为什么不把你的
initWithStyle:reuseIdentifier:
code,创建一个新的问题,说“这个该死的混蛋ikinci viking说这是错误的,但他不想在评论中处理它。怎么了?”这听起来好像有什么问题。我认为您的
editModeActivated
editModeDeactivated
有问题。我认为重新加载表并没有真正“解决”问题。