从数组中删除值时索引超出范围

时间:2020-08-02 19:51:57

标签: swift xcode

当用户单击像这样的单元格时,我正在向数组添加值:

var savedArray = [] as Array
self.savedArray.append(obj[indexPath.row].title as Any)

这已成功保存值。但是,当我要删除它们时(当它们取消选择单元格时),它会显示“致命索引超出范围”。

let number = indexPath.row       
self.savedArray.remove(at: number)

奇怪的是,此代码适用于第一个(0)indexPath,但不适用于其他。有解决办法吗?谢谢。

1 个答案:

答案 0 :(得分:1)

您正在使用其他集合的索引。您为什么期望两个元素都在同一索引中?发生的情况是两个集合具有不同数量的元素。首先更改您保存的数组的声明。不要使用www.。使用元素的类型。使您的数组类型与您的title属性相同。然后在Any中找到元素的firstIndex并将其删除。

您的代码应如下所示(如果您的title属性是字符串):

数组声明:

savedArray

附加新元素:

var savedArray: [String] = []

删除元素

self.savedArray.append(obj[indexPath.row].title)
相关问题