tableView 编辑委托方法不起作用(无效更新:第 0 节中的行数无效)

Posted

技术标签:

【中文标题】tableView 编辑委托方法不起作用(无效更新:第 0 节中的行数无效)【英文标题】:tableView editing delegate method not working(Invalid update: invalid number of rows in section 0) 【发布时间】:2014-09-18 09:42:11 【问题描述】:

'NSInternalInconsistencyException',原因:'无效更新:第 0 节中的行数无效。更新后现有节中包含的行数 (6) 必须等于该节中包含的行数之前update (6),加上或减去从该节插入或删除的行数(1 插入,0 删除),加上或减去移入或移出该节的行数(0 移入,0 移出)。

->@property (nonatomic ,strong)  NSMutableArray *name;

    - (id)initWithFrame:(CGRect)frame viewName:(NSInteger)viewDecide datasourceName:(NSMutableArray *)nameRef  
    

    

当我在这个类中初始化上面的 MutableArray 喜欢

self.name=[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3", nil];

然后使用表格视图编辑委托方法,一切正常,当我单击按钮时,表格进入编辑模式并删除和插入。

但是当我使用我在上述方法中传递的数据源初始化相同的数组时。 tableview 中的数据正确呈现,但是当我单击编辑按钮时它崩溃了。

注意:- 我用过 对于行数-

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    return[self.name count];

用于插入

[strongSelf.tableViewDataView1 insertRowsAtIndexPaths:[NSArray arrayWithObjects:[NSIndexPath indexPathForRow:0 inSection:0], nil] withRowAnimation:UITableViewRowAnimationLeft];

 and for deleting i used

 [strongSelf.tableViewDataView1 deleteRowsAtIndexPaths:[NSArray arrayWithObjects:[NSIndexPath indexPathForRow:0 inSection:0], nil] withRowAnimation:UITableViewRowAnimationLeft];

:-strongSelf 被使用是因为这发生在一个块内。

【问题讨论】:

这是因为您在调用插入部分时并未实际将项目添加到数组中,因此您在 -tableView:numberOfRowsInSection: 中返回的值并没有增加,但您告诉 tableView 插入一行。 是的,我刚刚得到它,但是谢谢是的,我必须在点击编辑按钮时更改计数谢谢您的回复 【参考方案1】:

您正在从 table 中删除该项目,而不是从您的数组中。您必须从数组中删除相同的值,以便计数保持不变。

【讨论】:

以上是关于tableView 编辑委托方法不起作用(无效更新:第 0 节中的行数无效)的主要内容,如果未能解决你的问题,请参考以下文章

tableView 设置编辑 menuController Action 不起作用

编辑时的 TableView 单元格背景不起作用

旋转设备时表格视图更新无效

TableView 的 SearchBar 不起作用

iOS 8 中 TableView 单元格编辑控件的问题

为啥 UICollectionView 的委托方法不起作用?