如何在editActionsForRowAtIndexPath中使用indexpath.row = -1

时间:2016-10-27 11:58:00

标签: ios swift tableview

我在我的应用中使用editActionsForRowAtIndexPath进行删除&编辑按钮,但如果我再次&再次更多的时间刷卡,所以我得到indexpath.row = -1我感到震惊,我怎么可能但是我检查&在我得到相同的indexpath.row = -1的每个地方访问更多的演示项目。 那么我怎么能处理这个问题,就像我想滑动不能在这种情况下工作或者如果有其他任何想法那么请指导我。

 func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
   print(indexPath.row)
            //Edit
            let editAction = UITableViewRowAction(style: .Normal, title: "Edit", handler: {
                action in
            })
            editAction.backgroundColor = UIColor(red: 212.0/255, green: 37.0/255, blue: 37.0/255, alpha: 1)

            //Delete
            let deleteAction = UITableViewRowAction(style: .Normal, title: "Delete", handler: {
                action in
            })
            deleteAction.backgroundColor = UIColor(red: 183.0/255, green: 27.0/255, blue: 27.0/255, alpha: 1)
            return [deleteAction,editAction]
}

1 个答案:

答案 0 :(得分:0)

我不确定是什么原因造成的,这可能是尝试访问不再存在的单元格的方法出现的问题,但是一个快速,肮脏的解决方法是仅检查indexPath是否为-1以及是否确实返回了没有。

if(indexPath.section != -1 && indexPath.row != -1) {
    //Code for creating actions
}
return nil

这至少应该阻止它在出现该indexPath时崩溃。