Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在indexPath中安全地删除行_Ios_Swift_Tableview_Indexpath - Fatal编程技术网

Ios 如何在indexPath中安全地删除行

Ios 如何在indexPath中安全地删除行,ios,swift,tableview,indexpath,Ios,Swift,Tableview,Indexpath,我认为这是一个相当愚蠢的问题,但我没有找到任何解决方案来安全地删除表视图中的行 calendarTableView.deleteRows(at: indexPaths, with: .fade) 在删除行之前,我想先检查是否有行,因为如果在没有任何行可删除的情况下尝试删除,则当前会出现如下错误: '尝试从节0中删除第6行,该节在更新之前仅包含0行' 要显示/隐藏的阵列如下所示: var twoDimensionalArray = [ ExpandableNames(isExpanded

我认为这是一个相当愚蠢的问题,但我没有找到任何解决方案来安全地删除表视图中的行

calendarTableView.deleteRows(at: indexPaths, with: .fade)
在删除行之前,我想先检查是否有行,因为如果在没有任何行可删除的情况下尝试删除,则当前会出现如下错误:

'尝试从节0中删除第6行,该节在更新之前仅包含0行'

要显示/隐藏的阵列如下所示:

var twoDimensionalArray = [
    ExpandableNames(isExpanded: false, names: ["Amy", "Bill", "Zack", "Steve", "Jack", "Jill", "Mary"]),
    ]

无需管理两个阵列或将其从数据源中删除。 只需检查行数是否为!=0,然后再删除它

let numberOfRows = calendarTableView.numberOfRows(inSection: section)

安全地删除行,您应该确保删除前和删除后的行数相同,总计数==新计数(删除后)+删除计数

删除行前从数据源数组中删除。安全的含义可能是什么?但是,您需要遵循一个简单的策略:删除行+同时从数据源中删除数据;因为它们必须同步,否则您会收到刚刚收到的错误消息。我不想从数据源中删除。我只希望我的表视图不再显示这些行。如果我选择隐藏节的行,则会调用此命令。我认为您需要在此处管理两个数组。一个用作表数据源,另一个用于对表数据源数组所做的更改。