我有类产品
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/