问题描述
我有以下课程:
import UIKit
class SomeClass: Equatable {
var Obj: Any
init(Obj:Any) {
self.Obj = Obj
}
static func == (lhs: SomeClass,rhs: SomeClass) -> Bool {
return lhs.Obj == rhs.Obj
}
}
但是我遇到了以下错误:
Binary operator '==' cannot be applied to two 'Any' operands
在这一行:
return lhs.Obj == rhs.Obj
非常感谢您的帮助。
解决方法
在Equatable协议函数中检查自定义类的每个属性的相等性,如下所示:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let objA = someClass(name: "Name1",age: 25)
let objB = someClass(name: "Name2",age: 25)
print(objA == objB)
}
}
class someClass: Equatable {
static func == (lhs: someClass,rhs: someClass) -> Bool {
return lhs.name == rhs.name && lhs.age == rhs.age
}
let name: String
let age: Int
init(name: String,age: Int){
self.name = name
self.age = age
}
}