gpt4 book ai didi

ios - 如何将 "contains"与两个对象数组一起使用

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

我有类产品

class Products {

var name:String = ""
var number:Int = 0

init(name: String, number: Int) {
self.name = name
self.number = number
}
}

然后在 View Controller 中

var productFirst:[Products] = [Products(name: "First", number: 1)]
var productSecond:[Products] = [Products]()

我使用 productFirst 来填充 tableView。

我想将选定的行添加到 productSecond 并且它有效:

productSecond.append(productFirst[indexPath.row])

但我不想重复数组中的项目,所以我做了

if !contains(productSecond, productFirst[indexPath.row]) {
productSecond.append(productFirst[indexPath.row])
}

我收到错误。怎么改?当 productFirst 和 productSeconds 只是字符串数组时,它工作正常,但现在我需要对象。

关于错误:首先是“找不到接受所提供参数的”! )'

最佳答案

要使 contains() 函数正常工作,Products 类应该实现 Equatable 协议(protocol)。只有这样我们才能检查两个元素是否相等。

class Products : Equatable {

var name:String = ""
var number:Int = 0

init(name: String, number: Int) {
self.name = name
self.number = number
}
}

func ==(lhs: Products, rhs: Products) -> Bool
{
return lhs.name == rhs.name && lhs.number == rhs.number
}

关于ios - 如何将 "contains"与两个对象数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27887387/

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