gpt4 book ai didi

arrays - 如何在空数组的任何位置插入新项目?

转载 作者:搜寻专家 更新时间:2023-11-01 07:13:20 25 4
gpt4 key购买 nike

我有一个允许多选的表格。第一次用户选择某行。第二次用户来此页面取消选择某些行,并且可能选择或不选择某些行。但我需要保留以前选择的行。该行表示价格。所以我需要跟踪价格,这是 TableView 选择我跟踪的行的原因。

这里我的声明数组是空的:

 var groupSelectedOldPrice : [String] = []

这是我的表格行选择的索引项目价格附加到数组:

 if  addon?.isSelect == true {
cell.accessoryType = .checkmark
groupSelectedOldPrice[indexPath.row] = (addon?.price)! // Index out of range
}

当用户按下完成按钮时:

        let selectedUserRows = self.tableView.indexPathsForSelectedRows

if let _selectedUserRows = selectedUserRows {

for select in _selectedUserRows {
print(select.row)
let dishprice = Double((dish?.price)!)! - Double(groupSelectedOldPrice[select.row])!
dish?.price = "\(dishprice)"
}
}

我不确定我是如何做到这一点的。我应该为 key value

使用字典吗

最佳答案

您收到Array index is out of range 错误,因为您试图在离散 索引处插入(更像是跳过 中间索引。但它不是这样工作的。你不能有像 ["a", "b", _ , _ , "g", "u", _ 这样的数组, _ , "y"])

让我们做一件事。您维护一个 counter var,在该 counter 的位置插入,然后递增该计数器。像这样的东西:

var counter: Int = 0
...
groupSelectedOldPrice.insert("your string" at:counter)
counter = counter +1
...

编辑

(根据你的要求回答)

为了实现您的要求,您可以维护一个字典。一个 Dictionary,其中 key 将是您的 indexpath.rowvalue 将是您的 String。很像:

var dic: [Int:String] = [:] // it's your declaration
....
....
dic[indexpath.row] = "your string" // when you try to fill your dictionary

关于arrays - 如何在空数组的任何位置插入新项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43662341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com