- [UItableviewcell_setEditingStyle:]:发送到已释放实例的消息
我在我的tableview单元格中有一个UITextField
。在编辑上的tableview类中,我在做[tableview setEditing:YES]
和完成[tableview setEditing:NO]
。- [UItableviewcell_setEditingStyle:]:发送到已释放实例的消息
因为我在桌面视图单元中有- (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 *[email protected]"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;
}
得到了解决我只需要在设置之前重新加载表[实现代码如下setEditing:NO]。在完成方法
这听起来像是有什么东西坏了 – vikingosegundo
我觉得你的'editModeActivated'或'editModeDeactivated'有问题。我认为重新加载表格并没有真正“修复”问题。 – mAu
如果您检查tableviewcontroller编辑属性外,您可能需要重新加载表之前显示表。
代码在哪里? – Bhavin
你可以发布tableView:cellForRowAtIndexPath:UITableView数据源的方法的代码? – schaechtele
你的init方法确实看起来很疯狂。细胞重复使用此代码。 – vikingosegundo