如何在 swift 3.0 中为对象数组使用“.contains”

how to use ".contains" for an object array in swift 3.0

如果需要获取包含对象的特定对象数组,如何使用包含。

正在尝试 select 和取消 select 表格视图行的复选框(使用 2 个图像)。

代码:

var originalParams = [ParamsModel]()
var selectedParams = [ParamsModel]()
if selectedParams.contains(originalParams[indexPath.index]) {
            cell.btnSelect.setBackgroundImage(UIImage(named:"checked.png"), for: UIControlState.normal)
        }
        else
        {
            cell.btnSelect.setBackgroundImage(UIImage(named:"unchecked.png"), for: UIControlState.normal)
        }

我正在使用 swift 3.0。它显示编译器错误 "Missing argument label 'where' in call"。感谢任何帮助。

ParamsModel 需要符合 Equatable 如果您希望能够在 ParamsModel 个实例的数组上调用 contains(_:)

这段代码也可以更简洁地写成:

let imageName = selectedParams.contains(originalParams[indexPath.index]) ? "checked.png" : "unchecked.png"
cell.btnSelect.setBackgroundImage(UIImage(named: imageName), for: .normal)