当用户单击像这样的单元格时,我正在向数组添加值:
var savedArray = [] as Array
self.savedArray.append(obj[indexPath.row].title as Any)
这已成功保存值。但是,当我要删除它们时(当它们取消选择单元格时),它会显示“致命索引超出范围”。
let number = indexPath.row
self.savedArray.remove(at: number)
奇怪的是,此代码适用于第一个(0)indexPath,但不适用于其他。有解决办法吗?谢谢。
答案 0 :(得分:1)
您正在使用其他集合的索引。您为什么期望两个元素都在同一索引中?发生的情况是两个集合具有不同数量的元素。首先更改您保存的数组的声明。不要使用www.
。使用元素的类型。使您的数组类型与您的title属性相同。然后在Any
中找到元素的firstIndex并将其删除。
您的代码应如下所示(如果您的title属性是字符串):
数组声明:
savedArray
附加新元素:
var savedArray: [String] = []
删除元素
self.savedArray.append(obj[indexPath.row].title)