如何使Array <any>相等?

时间:2019-01-20 02:03:42

标签: arrays swift generics swift4.1

我有以下可解码的类:

class Sample: Decodable {
    var something: Array<Any>?
}

extension Sample: Equatable {
    static func == (lhs: Sample, rhs: Sample) -> Bool {
        return rhs.something ?? [] == lhs.something ?? []
    }
}

给我错误类型Any不符合协议。

对于所有人的信息,Array中的对象类型只有在收到响应后才能在运行时确定。

需要帮助。

1 个答案:

答案 0 :(得分:2)

您不能将Array<Any>设为EquatableDecodable,因为两个protocols都需要Array's Element类型为{{1 }}或EquatableDecodable不满足此要求。

您可以做的是创建自己的自定义Any来满足上述要求,

class