比较两个对象数组时出现难以理解的 Swift 编译器错误

Inscrutable Swift compiler error when comparing two object arrays

我正在尝试像这样比较两个对象数组:

if oneObjectArray != anotherObjectArray {
   // ... do stuff
}

但是我得到以下不太有用的编译器错误:

Binary operator '!=' cannot be applied to operands of type '[MyModelObject]' and '[(MyModelObject)]'`

编译器错误指向相等检查中的第一个操作数。

我认为你的问题是你没有使 MyObectModel 平等化。

为了检查两个 MyObjectModel 数组是否相等,您需要能够检查两个 MyObjectModel 对象是否相等。

为此,您需要执行以下操作...

extension MyObjectModel: Equatable {}

// as a top level function
func ==(lhs: MyObjectModel, rhs: MyObjectModel) -> Bool {
    // check if your objects are equal here...
    return lhs.name == rhs.name
}