我的tableview单元格中有一个UITextField
。在编辑的tableview类中,我正在[tableview setEditing:YES]
和完成[tableview setEditing:NO]
。
因为我在tableview单元格中有- (void)setEditing:(BOOL)editing animated:(BOOL)animated
,所以我正在使用此方法。
按完成按钮后,它会在[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;
}
答案 0 :(得分:0)
GOT解决方案我只需要在设置[tableview setEditing:NO]之前重新加载表。完成方法
答案 1 :(得分:0)
如果在外面检查tableviewcontroller编辑属性,则可能需要在显示表之前重新加载表。