gpt4 book ai didi

ios - 在 swift 3 中避免数组重复

转载 作者:行者123 更新时间:2023-11-28 08:26:19 26 4
gpt4 key购买 nike

我正在尝试从数组中的 tableView 中的选定行中获取数据。我会将选定的行附加到数组中,这确实很好用。不幸的是,当我取消选择该行并再次选择它时,它会再次附加它。我需要编写一些逻辑来从数组中删除取消选择的行。

有人知道我该怎么做吗?

这是我选择一行时的代码:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedCell = tableView.cellForRow(at: indexPath) as? exerciseCell
selectedCell?.contentView.backgroundColor = UIColor(red: 84.0 / 255, green: 199.0 / 255, blue: 252.0 / 255, alpha: 1)

rowSelected+=1

if rowSelected >= 1 {
nextBtn.isEnabled = true
nextBtn.backgroundColor = UIColor(red: 84.0 / 255, green: 199.0 / 255, blue: 252.0 / 255, alpha: 1)
}

let exercisesSelected = selectedCell?.exerciseNameLbl.text

exerisenames.append(exercisesSelected!)

print(exerisenames)

}

下面是取消选择行的代码:

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
let selectedCell = tableView.cellForRow(at: indexPath) as? exerciseCell
selectedCell?.textLabel?.textColor = UIColor.darkGray

rowSelected-=1

if rowSelected == 0 {
nextBtn.isEnabled = false
nextBtn.backgroundColor = UIColor.darkGray
nextBtn.setTitle("Choose an exercise", for: UIControlState.disabled)
}

let exercisesDeselected = selectedCell?.exerciseNameLbl.text


if exerisenames.contains(exercisesDeselected!) {
print("exercise already in the row and has to be deleted before going further")
}

print(exerisenames)

}

两者都将引用我在顶部创建的名为:exercisenames 的数组

最佳答案

快速浏览一下文档,您可能想要类似的东西

if let index = exercisenames.index(of: exercisesDeselected) {
exercisenames.remove(at: index)
}

但我也认为@almas 关于有序集的建议可能不错。

关于ios - 在 swift 3 中避免数组重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39879653/

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