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

时间:2016-11-28 18:07:03

标签: arrays swift3 contain

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

尝试为tableview行选择和取消选中复选框(使用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。它显示编译器错误“缺少参数标签”,其中'在调用中'。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

如果您希望能够在ParamsModel个数组的实例上调用Equatable,则

contains(_:)需要符合ParamsModel

此代码也可以更简洁地编写为:

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